Postgresql插入多列格式错误的数组文字
Postgresql insert multiple columns malformed array literal
我正在学习 here 的教程,并尝试对其进行调整以传递多个列值。我尝试通过研究错误消息来解决这个问题,但每次我尝试用 {
重写值时,我都会遇到一组不同的错误。我做错了什么?
DataError: malformed array literal: "value1" LINE 1: ...
public."Texas"(licensenum,businessowner) VALUES ('value1','...
^ DETAIL: Array value must start with "{" or dimension information.
我的代码:
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()
错误消息表示列 licensenum
和 businessowner
(或其中之一)是数组。可能它们应该是简单的文本,那么你的程序就会运行良好。但是,如果你真的希望它们是数组,那么你应该传递列表,而不是字符串作为参数,例如:
cur.executemany(
"insert into public.\"Texas\"(licensenum,businessowner) VALUES (%s,%s)",
[(['value1'],['value2']),(['value3'],['value4'])])
我正在学习 here 的教程,并尝试对其进行调整以传递多个列值。我尝试通过研究错误消息来解决这个问题,但每次我尝试用 {
重写值时,我都会遇到一组不同的错误。我做错了什么?
DataError: malformed array literal: "value1" LINE 1: ... public."Texas"(licensenum,businessowner) VALUES ('value1','... ^ DETAIL: Array value must start with "{" or dimension information.
我的代码:
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()
错误消息表示列 licensenum
和 businessowner
(或其中之一)是数组。可能它们应该是简单的文本,那么你的程序就会运行良好。但是,如果你真的希望它们是数组,那么你应该传递列表,而不是字符串作为参数,例如:
cur.executemany(
"insert into public.\"Texas\"(licensenum,businessowner) VALUES (%s,%s)",
[(['value1'],['value2']),(['value3'],['value4'])])