对多个值执行SQL查询Psycopg2

时间:2017-09-01 21:56:37

标签: python postgresql postgis psycopg2

我使用 psycopg2 执行一些PostGIS查询,但我遇到了问题。让我们说我运行一个查询:

cursor.execute("SELECT locations FROM locationtable")

这给了我一个python变量,它是一个点几何列表。后来,说我想将它们转换为我希望能够做到的不同 SRID

cursor.execute("SELECT ST_Transform(%s,32146)",(locs))

但这给了我一个错误:

  

TypeError:并非在字符串格式化期间转换所有参数

我意识到在这种情况下我可以刚刚结合这两个SQL命令,但这是我遇到的一般问题,并且想知道是否有办法用 psycopg2传递元组列表并对所有值执行SQL命令。

1 个答案:

答案 0 :(得分:1)

它可以使用方法executemany

cursor.executemany("SELECT ST_Transform(%s,32146)",(locs))

但是locs需要是元组或其他序列类型的列表,例如:

locs = [(val,) for val in locs]