【錯誤】python百分號沖突not enough arguments for format string


query = "SELECT * FROM devices WHERE devices.`id` LIKE '%{}%'".format("f2333")
datas = cur.query(query)

報錯:

query = query % tuple([db.literal(item) for item in args])
TypeError: not enough arguments for format string

傳入query語句拼接出來為

SELECT * FROM devices WHERE devices.`mac` LIKE '%f8272e010882%'

此時還在python解釋器中運行,這里的%加后面的字符會被python解析為占位符,如%f為float,所以報錯缺少參數。

解決

使用轉義,轉義%要使用%轉義。

query = "SELECT * FROM devices WHERE devices.`id` LIKE '%%{}%%'".format("f2333")
datas = cur.query(query)


免責聲明!

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



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