pymysql中报TypeError: not enough arguments for format string的解决办法

今天使用pymysql将数据插入数据到数据库时,一直报
TypeError: not enough arguments for format string的错误
找了很久没有也没有找到问题,后来,才发现是

cursor.executemany()

这个函数的问题,因为我这里是一次插入一条数据,所以应该用

cursor.execute()

因此,这里将就讲一下二者的区别,
分不清楚将像我今天这样踩一个大坑

cursor.execute()

它的第一个参数就是你的对数据库的sql语句,如果要往sql语句中传入数据,用(%s,…)做占位符,然后传入第二个参数,这个参数就得是一个元组
它每次只能进行一次sql操作,第二个参数应该是这样

,..# 前面有几个%s占位符就应该是几元组

cursor.executemany()

比如在执行 insert 时如果不想一条一条的插入数据,可以用这个函数,它支持批量插入数据,前面的第一个参数是一样的,值得注意的是,第二个参数要应该是这样一个类型

[(,),(,),......]

也就是说,这里必须要放一个列表,然后将要插入的元组数据放在列表里面
而今天,我就是将cursor.execute()写成了cursor.executemany(),当然我肯定没有在第二个参数那里写成一个列表,因此一直报
TypeError: not enough arguments for format string的错误

当然,报这个错误还并非就是上面的原因,还有可能真的是前面的占位符%s个数和后面的元组中的元素个数不等,你自己检查一下

想了解更多知识,欢迎移步到微信公众号
扫码或搜索数据分析者
在这里插入图片描述

如果对你有帮助,不要忘记点赞、关注、评论加收藏哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python和数据分析

钟意作者

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值