You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Python向PostgreSQL插入列表数据?报错求助

解决PostgreSQL插入列表时的TypeError问题

错误原因

cursor.execute()的第二个参数要求是序列类型(元组、列表等),你直接传入单个整数i,Python会将其视为单个字符的序列解析,导致参数与SQL语句中的%s不匹配,从而触发TypeError: Not all arguments converted during string formatting。另外你的代码里还存在拼写错误:cusror应该是cursor。

修复方案1:单条插入(修正参数格式)

将单个元素包装成元组(注意必须加逗号,否则会被识别为普通括号),同时建议在循环外统一提交事务,提升性能:

A = [1,2,3,3,4,5,6,8,90,8,6,5]
for i in A:
    cursor.execute("INSERT INTO schema1.table1 VALUES (%s)", (i,))  # 用(i,)把单个元素转为元组
connection.commit()  # 循环结束后统一提交

修复方案2:批量插入(更高效)

使用executemany()方法批量插入,减少数据库交互次数,适合数据量较大的场景:

A = [1,2,3,3,4,5,6,8,90,8,6,5]
# 将列表元素转为单个元素的元组列表
values_list = [(x,) for x in A]
cursor.executemany("INSERT INTO schema1.table1 VALUES (%s)", values_list)
connection.commit()

额外注意事项

  • 确认schema1.table1表只有一个数值类型的列,确保插入的数据类型与列类型匹配;
  • 检查游标和连接对象的拼写是否正确,避免因笔误导致的其他错误。

内容的提问来源于stack exchange,提问作者Ravikant Pandey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 23:33:22