一、错误:

  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本身就有% 则替换成 "%%" 


原创不易,转载需标明出处,谢谢。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐