我最近开始学习python和sql,而且我已经搞砸了好几天了,我被卡住了。我试图在我的Postgresql数据库表中插入10 000个生成的行,包括id,address,booleanStatement,integerStatement和addressDate。
我创建了一个addressGenerator,它以一种形式给我结果:
myAddresses = addressGenerator (10000, 0)
print(myAddresses)
输出:['M3-44-44-00-00-00', False, 1],...,[M3-44-44-00-27-f5, False, 1]
现在将它插入数据库我编写了以下代码:
conn.psycopg2.connect("user=abc password=abc dbname=abc host=localhost")
c = conn.cursor()
c.execute('INSERT INTO "my-table" (id, "my-address", integerStatement, booleanStatement, addressDate) Values (NULL, %%s, %%d, %%s, %%s)', myAddresses)
conn.commit()
它给了我错误:psycopg2.ProgrammingError: syntax error at or near "%"
我理解它的方式:id是自动增量的,所以占位符可以是NULL,my-address,booleanStatement是字符串(%% s),integerStatement是%% d,addressDate是时间戳也是%% s。我在这做错了什么?