我使用 psycopg2 执行一些PostGIS查询,但我遇到了问题。让我们说我运行一个查询:
cursor.execute("SELECT locations FROM locationtable")
这给了我一个python变量,它是一个点几何列表。后来,说我想将它们转换为我希望能够做到的不同 SRID :
cursor.execute("SELECT ST_Transform(%s,32146)",(locs))
但这给了我一个错误:
TypeError:并非在字符串格式化期间转换所有参数
我意识到在这种情况下我可以刚刚结合这两个SQL命令,但这是我遇到的一般问题,并且想知道是否有办法用 psycopg2传递元组列表并对所有值执行SQL命令。
答案 0 :(得分:1)
它可以使用方法executemany
:
cursor.executemany("SELECT ST_Transform(%s,32146)",(locs))
但是locs
需要是元组或其他序列类型的列表,例如:
locs = [(val,) for val in locs]