python - Postgresql插入多列格式错误的数组文字
问题描述
我正在关注这里的教程,并尝试对其进行调整以传递多个列值。我已经尝试通过研究错误消息来解决这个问题,但是每次我尝试用 a 重写值时,{
我都会得到一组不同的错误。我究竟做错了什么?
DataError:格式错误的数组文字:“value1”第 1 行:... public."Texas"(licensenum,businessowner) VALUES ('value1','... ^ DETAIL: 数组值必须以“{”或维度信息开头。
我的代码:
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'])])
推荐阅读
- c# - 用于检查 ModelState.IsValid 的 ActionFilter 永远不会被命中
- excel - 将日期格式从 dd/mm/yyy 更改为 dd-mm-yyyy
- azure - 如何在 Pester 中模拟 Azure PowerShell Cmdlet?
- winforms - 在PowerShell中检查现有文件后如何关闭表单GUI?
- ios - 在 Objective-C 类中无法达到 Swift 类?
- java - jsp中的自动完成文本框
- git - Git rebase 到 master 的问题说你的分支是最新的
- git - 我应该经常使用 `git rebase` 和 `git push --force-with-lease` 吗?
- hugo - 修改关于 Jake Wharton 的 Hugo 的日志级别
- php - setCellValue PhpSpreadsheet 输出不正确