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

使用Python导入CSV至MySQL遇ProgrammingError问题求助

解决MySQL Connector/Python的参数占位符错误

嘿,这个问题我之前踩过一模一样的坑!你遇到的ProgrammingError: Not all parameters were used in the SQL statement,核心原因是MySQL Connector/Python不支持用?作为参数占位符——它只认%s作为占位符,哪怕你数的字段、占位符和CSV行数完全一致,用错占位符的话驱动根本识别不出你要传参数,自然会报错说参数没被用到。

修正步骤

直接把你的INSERT语句里的?全部替换成%s就行,修正后的代码如下:

cursor.execute('INSERT INTO finally(id,string1,string2,num1,num2,num3,num4,string3,string4,num5) VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)', row)

额外排查建议

如果换了占位符还是有问题,可以做这几个检查:

  • 打印每行的长度确认:在循环里加一句print(len(row)),确保CSV每行确实是10个元素,有没有空行或者分隔符错误(比如CSV里用了制表符而不是逗号?)
  • 核对表字段类型:比如num1到num5是数值类型的话,要确保CSV里对应的内容是可以转换成数字的,避免插入时出现类型不匹配的错误
  • 可以先注释掉mydb.commit(),用print把生成的SQL语句和参数打出来,手动验证一下参数和占位符的对应关系

内容的提问来源于stack exchange,提问作者Shreyes Jishnu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:50:14