[英]ValueError: unsupported format character 'T' (0x54)
我正在嘗試通過Python這樣的MySQL查詢傳遞字符串-
cur.execute("""SELECT * FROM abcDB.zyzTable WHERE ordId IN %s """ %(orderString1))
和orderString1看起來像(534,523,544)該字符串帶有方括號
我收到以下錯誤。
ValueError:索引2195處不支持的格式字符'T'(0x54)
我該如何解決?
我建議使用另一種方法來參數化您的IN
查詢。 而不是使用要檢查的所有值制作類似"(534,523,544)"
的字符串,而是將每個值作為參數傳遞。
例如:
order_ids = [534, 523, 544]
query = "SELECT * FROM abcDB.zyzTable WHERE ordId IN ("
query += ",".join(["%s"]*len(order_ids)) + ")"
cur.execute(query, order_ids)
哪個可以有效地執行以下查詢:
"SELECT * FROM abcDB.zyzTable WHERE ordId IN (534,523,544)"
這里的關鍵是我使用了",".join(["%s"]*len(order_ids))
為查詢動態創建適當數量的占位符。
還要注意 , cur.execute()
的第二個參數是訂單ID的列表。 我沒有像您那樣格式化字符串。
不要使用%
,否則您容易受到sql-injection的影響。 這樣更安全,更可靠。 有關此帖子的更多閱讀內容:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.