我正在关注here的教程,并尝试对其进行调整以传递多个列值。我已经尝试通过研究错误消息来解决此问题,但是每次尝试使用{
重写值时,都会遇到另一组错误。我在做什么错了?
DataError:格式不正确的数组文字:“ value1”第1行:... public。“ Texas”(许可证,业务所有者)VALUES('value1','... ^详细信息:数组值必须以“ {”或维度信息开头。
我的代码:
import psycopg2
conn = psycopg2.connect(host="localhost",database="postgres", user="postgres", password="supershinypwdhere")
cur = conn.cursor()
cur.executemany("insert into public.\"Texas\"(licensenum,businessowner) VALUES (%s,%s)", [('value1','value2'),('value3','value4')])
conn.commit()
cur.close()
conn.close()
答案 0 :(得分:1)
该错误消息表示列licensenum
和businessowner
(或其中之一)是数组。可能它们应该是简单的文本,那么您的程序将运行良好。但是,如果您确实希望它们成为数组,则应该传递列表,而不是字符串作为参数,例如:
cur.executemany(
"insert into public.\"Texas\"(licensenum,businessowner) VALUES (%s,%s)",
[(['value1'],['value2']),(['value3'],['value4'])])