python3中连接mysql执行sql语句报错not enough arguments for format string
一、错误:File "/usr/local/python3/lib/python3.8/site-packages/pymysql/cursors.py", line 125, in mogrifyquery = query % self._escape_args(args, conn)TypeError: not enough arguments for format string二、错误分析:
一、错误:
File "/usr/local/python3/lib/python3.8/site-packages/pymysql/cursors.py", line 125, in mogrify
query = query % self._escape_args(args, conn)
TypeError: not enough arguments for format string
二、错误分析: not enough arguments for format string 参数不足。
查看 execute() 源码
1、 由下图可知报错信息是在 mogrify() 方法args这个不是空导致的
2、结合 TypeError: not enough arguments for format string 参数不足,可以得出 本应该传
args这个参数但是没有传导致的,或者是不应该传 args这个参数 但是传一个不等于None的空参数
比如 [], "", '' 等等这些
3、定位问题排查代码
三、解决办法
查看自己代码如下
我这问题是args没有参数,而我默认传的是 [] 导致
1、 可以直接把args=[] 去掉
2、args=[] 改成 args=None
3、sql语句中使用 " % " 这个参数的占位符,如果sql本身就有% 则替换成 "%%"
原创不易,转载需标明出处,谢谢。
更多推荐
所有评论(0)