我在链接到PostgreSQL数据库的psycopg2中执行查询。这是有问题的代码:
with open('dataFile.txt', 'r') as f:
lines = f.readlines()
newLines = [line[:-1] for line in lines]
curr=conn.cursor()
lineString = ','.join(newLines)
curr.execute("SELECT fields.fieldkey FROM fields LEFT JOIN zone ON zone.fieldkey=fields.fieldkey WHERE zone.zonekey = %s;", (newLines[0]))
rows = curr.fetchall()
连接到数据库没有问题,并且lines [0]的类型肯定是字符串,我检查了一下。字符串格式的语法有问题吗?
我得到的错误要澄清是:
TypeError: not all arguments converted during string formatting
lines[0]
使该元组之后必须有逗号。
curr.execute("""
SELECT fields.fieldkey
FROM fields
LEFT JOIN zone ON zone.fieldkey=fields.fieldkey
WHERE zone.zonekey = %s;
""", (lines[0],))
由于该execute
方法需要一个序列(或映射),因此会在您括号内提供的字符串上进行迭代。因此,有必要明确地使该元组。使用以下tuple
函数可以得到具有更清晰代码的相同结果:
(tuple(lines[0]))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句