今天使用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个数和后面的元组中的元素个数不等,你自己检查一下
想了解更多知识,欢迎移步到微信公众号
扫码或搜索数据分析者

如果对你有帮助,不要忘记点赞、关注、评论加收藏哦!
在使用Pymysql插入数据时遇到TypeError: not enough arguments for format string错误。问题源于误将cursor.execute()写为cursor.executemany()。cursor.execute()适用于单条SQL执行,参数为SQL语句和一个元组。而cursor.executemany()用于批量插入,其第二个参数应为包含多个元组的列表。确保占位符%s数量与传入数据元组元素数量一致,避免类似错误。
2699

被折叠的 条评论
为什么被折叠?



