【发布时间】:2016-10-05 06:32:10
【问题描述】:
我有两个列表:
columns = ['id','name','address']
data = ['1,'John','LA'','2,'Jessica','TX'']
我的表架构与上面的列相同,当我将值和列名作为参数传递时,我无法使用 psycopg2 连接将数据插入表中。
cursor_r.execute("insert into test %s values %s ",tuple(column_names),tuple(values)))
我得到的错误是
psycopg2.ProgrammingError: syntax error at or near "'id'"
我真的无法弄清楚我做错了什么,并且非常感谢任何形式的帮助。预先感谢您尝试帮助我。 编辑:我试着输入这个查询:
cursor_r.execute("insert into test (%s) values (%s) ", ((x for x in column_names),(str(y).replace("(","").replace(")","") for y in values)))
它现在给我一个错误,它不能适应类型“生成器”
编辑 2:我现在收到“生成器”对象不支持索引的错误。谁来帮帮我
【问题讨论】:
-
data = ['1,'John','LA'','2,'Jessica','TX'']此列表给出错误使用data = ["1,'John','LA'","2,'Jessica','TX'"] -
@mahendrakamble 我动态存储了数据。所以 list 显然会用 ' ' 来存储它,对吗?不知道能不能改
-
(x for x in column_names)这部分创建生成器对象,这就是它给出错误的原因 -
你是否按照我说的那样更改了那个数据列表..
-
@mahendrakamble 我的意思不是手动输入该列表。老实说,我不知道如何改变它
标签: python sql insert psycopg2