python中處理插入mysql中的bit欄位
阿新 • • 發佈:2018-12-12
mysql中有一個表goods,欄位較多,還有幾個bit型別的。按照我的一般辦法,是把引數定義成dict,如:
goodsInfo = {} goodsInfo['id'] = self.get_argument('id','') goodsInfo['goodsName'] = self.get_argument('goodsName','') goodsInfo['jp'] = self.get_argument('jp','') goodsInfo['dw'] = self.get_argument('dw','') goodsInfo['needKc'] = int(self.get_argument('needKc',1)) ''' 還有很多,不再寫,needKc就是bit型別 '''
然後寫SQL語句:
sqlStr = "insert into goods(id,goodsName,jp,dw,needKc,#等等剩餘欄位
sqlStr += "values('%(id)s','%(goodsName)s','%(jp)s','%(dw)s',%(needKc)s,#等等剩餘欄位
最後呼叫cur.execute(sqlstr, goodsInfo),執行報錯,意思是needkc長度不足, 後又把%(nnedKc)s改為%(nnedKc)d,又提示%d期望整形數值,而不是str。調整很多次都不行,mmd,不行老子給你用原生態SQL語句。sqlstr最後加了一句:
sqlStr = sqlStr % goodsInfo
執行我改為cur.execute(sqlstr),一次通過。nnd,不用你的引數