我正在尝试用python运行一个sql查询。它确实可以在pgadmin中工作,但是python报告了语法错误。
cur_str.execute("select b2.linestring,b2.id,ST_Length(ST_Intersection(ST_Transform(ST_MakeValid(b2.linestring),28992),ST_Transform(ST
_MakeValid(b1.geom), 28992))) from public.ways b2, public.pc4_2017 b1 where ST_Intersects(ST_Transform(ST_MakeValid(b2.linestring),28992)
,ST_Transform(ST_MakeValid(b1.geom),28992)",([pc4]))
psycopg2.errors.SyntaxError: syntax error at end of input
LINE 1: ...linestring),28992),ST_Transform(ST_MakeValid(b1.geom),28992)
^我能得到一些帮助吗?
发布于 2020-06-08 13:54:23
在Python中,您需要使用三引号来生成多行字符串:
cur_str.execute("""
select
b2.linestring,
b2.id,
ST_Length(ST_Intersection(ST_Transform(ST_MakeValid(b2.linestring),28992), ST_Transform(ST_MakeValid(b1.geom), 28992)))
from
public.ways b2,
public.pc4_2017 b1
where
ST_Intersects(ST_Transform(ST_MakeValid(b2.linestring),28992),ST_Transform(ST_MakeValid(b1.geom),28992))
""", ([pc4]))https://stackoverflow.com/questions/62253280
复制相似问题