【发布时间】:2019-09-10 15:57:25
【问题描述】:
我正在尝试使用游标执行在 django 应用程序中进行查询,但是当我将列表传递给查询字符串时,它带有引号并返回以下错误:
psycopg2.DataError:整数的无效输入语法:“139,212,933,2303,2613” 第 1 行:...ados_ibge.sociodemografia_rmc sd WHERE sd.gid IN ('139,212,9...
这是我目前正在编写的代码..
gids = self.request.GET.getlist('gid')
if gids:
with connection.cursor() as cursor:
g = ','.join(gids)
cursor.execute("SELECT * FROM poi.farmacias_rmc f, dados_ibge.sociodemografia_rmc sd WHERE sd.gid IN (%s) AND ST_Intersects(sd.geom, f.geom) = true", [g])
rows = cursor.fetchall()
【问题讨论】:
-
gids的值是多少? -
g = ','.join(str(gids))
-
你尝试过字符串而不是传递一个列表 [g],例如,因为使用 in 运算符的查询就像 SELECT * FROM mytable WHERE ids in (1, 3, 6, 7, 9)
标签: python django python-3.x psycopg2