PostgreSQL插入多个列,格式不正确的数组文字

时间:2019-01-09 02:20:01

标签: python python-3.x postgresql psycopg2 postgresql-10

我正在关注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()

1 个答案:

答案 0 :(得分:1)

该错误消息表示列licensenumbusinessowner(或其中之一)是数组。可能它们应该是简单的文本,那么您的程序将运行良好。但是,如果您确实希望它们成为数组,则应该传递列表,而不是字符串作为参数,例如:

cur.executemany(
    "insert into public.\"Texas\"(licensenum,businessowner) VALUES (%s,%s)", 
    [(['value1'],['value2']),(['value3'],['value4'])])