我正在嘗試創(chuàng)建一個函數(shù)來處理 API 錯誤消息,但我在 Python 中收到此錯誤消息:Exception has occurred: sqlite3.OperationalErrornear "Test4": syntax error服務(wù)器響應(yīng)是:{"message":"Failed to validate one or more request parameters","validationErrors":["Budget name must be unique. 'Test4 - X4574747-PHONE' already exits"]}我的代碼是:def error(): if "message" in r.json(): logText = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) + " : " + r.json()['message'] c.execute("INSERT INTO log VALUES ('"+ logText +"')") conn.commit() if "validationErrors" in r.json(): logText = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) + " : " + r.json()['validationErrors'][0] c.execute("INSERT INTO log VALUES ('"+ logText +"')") conn.commit() os._exit(1)我無法確定導(dǎo)致此錯誤的原因。任何幫助,將不勝感激。謝謝你。
1 回答

哆啦的時光機(jī)
TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個贊
logText = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) + " : " + r.json()['validationErrors'][0]
c.execute("INSERT INTO log VALUES ('"+ logText +"')")
您正在發(fā)送此 SQL INSERT INTO log VALUES ('2018-12-10 23:31:26 : Budget name must be unique. 'Test4 - X4574747-PHONE' already exits'),正如您看到的那樣,您'之前關(guān)閉了引號Test4,這就是為什么 SQL 不了解關(guān)閉引號后發(fā)生了什么的原因。
用 c.execute("INSERT INTO log VALUES (?)", [logText])
丹的代碼有效,但我不明白。
?表示從給定參數(shù)列表傳遞參數(shù)。這是[logText]. 最好使用這種方式來避免 SQL 注入。
添加回答
舉報
0/150
提交
取消