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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM