我查看了各个地方的文档,看看如何做到这一点,但我没有取得任何成功。我想将列的名称传递给sql查询。我正在使用psycopg2,我最近的尝试是基于此文档页面http://initd.org/psycopg/docs/sql.html#module-psycopg2.sql
这是我最近的尝试,但是我收到错误IndexError: tuple index out of range
,指向我在参数中传递的format()
。
def parse_files(cursor):
for name in column_names:
cursor.execute(
sql.SQL(
"select planet_osm_point.{}, count(*) from planet_osm_point group by planet_osm_point.{}"
).format(sql.Identifier(name)))
for row in cursor:
print(str(row[0]) + str(row[1]))
答案 0 :(得分:0)
给定的文档并不清楚,但看起来我需要在{}
内部传入一个值,指定我想要使用的参数。在这种情况下,它是{0}
答案 1 :(得分:0)
column_names = ['col1', 'col2']
for column in column_names:
query = sql.SQL('''
select {0}, count(*)
from planet_osm_point pop
group by {0}
''').format(sql.Identifier('pop.' + column))
cursor.execute(query)
for row in cursor.fetchall():
print (str(row[0]) + str(row[1]))