Python寫入數據到MySQL
最新
04-22
題圖:tom-holmes-511289-unsplash
調用pymysql包,寫入數據到表,遇到一個問題。沒想到解決方法竟是這樣...
問題描述。一張mysql表t,數據類型有字元型欄位field_s,數值型field_n。python提供數據源,調用pymysql包介面寫入數據到t.
一般都會這麼做:插入腳本為insert into t (field_s, field_n)values (%s, %f), (『s_val』, float(n_val) )調用execute介面,commit後提交。調試程序,發現報錯:a number is required, not str. 實際項目中由於插入的欄位比較多,本以為有些欄位類型未對應好,仔細檢查後,確認所有欄位類型都對應一致。那是什麼問題呢?
經過查詢發現,插入的所有欄位,格式要求一律為%s, 因此將上面腳本修改為:insert into t (field_s, field_n) values (%s,%s), (『s_val』, float(n_val) ) 後,問題得到解決。
這是有些奇怪,腳本中為什麼輸入格式是 %s 的欄位,被賦值為 float 型呢? 很彆扭!
這就是調用別人寫的開源包可能出現的一個困擾,需要完全按照作者的設計規範調用 API.
希望,看到的讀者,以後使用 pymysql 包時注意到這個字元格式問題。不知,你們遇到過嗎?
※你日日夜夜愛的她,Python一鍵獲取各種美照,女友再也不用擔心我找不到照片了
※Python基礎知識系列——列表和元組
TAG:Python |