Python TypeError: not enough arguments for format string
Posted 做一个有情怀的人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python TypeError: not enough arguments for format string相关的知识,希望对你有一定的参考价值。
今天使用mysqldb执行query语句的时候,在执行这条语句的时候:
select PROJ, DATE_FORMAT(MAX(DATE),\'%Y-%m-%\') AS MAXDATE, DATE_FORMAT(MIN(DATE),\'%Y-%m-%d\') AS MINDATE FROM (SELECT resource.PROJ,`day`.DATE FROM resource,`day` where resource.MAC=`day`.MAC ORDER BY PROJ) AS PROJSET GROUP BY proj
出现一下错误:
Python TypeError: not enough arguments for format string
根据错误提示顺藤摸瓜找到病症:
在python扩展包mysqldb下的cursors.py有这么一处代码写法已经过时。
原来的的写法如图:
我们只需要把
query = query % args 修改为 query = query.format(args)
总结:这个mysqldb是我在ubuntu16.04版本的linux通过apt-get install安装的,但是也出现mysqldb里一些过时的写法。
旧版本的写法基本能满足一些基本的sql的语句执行,但是像上面的sql语句里使用了max,min等mysql系统函数的同时,又
使用了data_format函数,这样query % args 就不能使用了。
另附别人的忠告:Note that the %
syntax for formatting strings is becoming outdated. If your version of Python supports it
以上是关于Python TypeError: not enough arguments for format string的主要内容,如果未能解决你的问题,请参考以下文章
python TypeError: must be str, not bytes错误
(Python 新手)不断收到“TypeError: 'int' object is not callable”
python: "TypeError: 'type' object is not subscriptable"
Python 3.8 TypeError: can't concat str to bytes - TypeError: a bytes-like object is required, not 's