我正在尝试将一些字符串值插入到 postgresql 数据库中。即:
macaddress, timestamp (date time format) type of device (string) subtype (string)
example:
INSERT INTO device (address, tstamp, type, subtype)
VALUES ('00:00:00:00','2012-02-22 19:31:26','computer','notebook')
我正在使用 python psycopg2 脚本转储数据,但出现以下错误:
c.executemany("INSERT INTO device VALUES (default, '%s','%s','%s','%s')",
(mac, date, typedev, subtype,))
TypeError: not all arguments converted during string formatting
我用来插入的命令是:
c.executemany("INSERT INTO device VALUES (default, '%s','%s','%s','%s')",
(mac, date, typedev, subtype,))
最佳答案
有几个问题:
- 您不需要引用参数占位符 (
%s
)。 psycopg2 的优秀人员将确保为您正确完成。 executemany()
expects a sequence of parameters .
因此,由于您只插入一行,因此您可以使用 execute()
:
c.execute("INSERT INTO device VALUES (default,%s,%s,%s,%s)",
(mac, date, typedev, subtype,))
当你需要使用executemany()
时,记得给它传递一系列参数,例如:
c.executemany("INSERT INTO device VALUES (default,%s,%s,%s,%s)",
[(mac, date, typedev, subtype,),])
关于python - 通过 psycopg2 将字符串插入 postgresql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9622689/