將pymysql獲取到的資料型別是tuple轉化為pandas方式
我就廢話不多說了,大家還是直接看程式碼吧!
#執行結果轉化為dataframe df = pd.DataFrame(list(result))
補充知識:python pymysql注意事項
cursor.execute 與 cursor.executemany有許多不同的地方
1. execute 中欄位的值是字串形式時必須加引號,但是executemany只需要使用佔位符%s,pymysql利用給的引數list自動會加上引號
2.execute返回結果都是數字,但是executemany返回結果為none和數字
3.executemany之後執行fetchall,只能返回最後一條語句執行的結果(例如執行select時)
4.insert時,如果量比較大,最好拼接value然後用execute執行,如果用executemany(sql,datalist)執行的話速度太慢。
execute十萬條 12秒
2016-07-15 16:24:42,177 DEBUG my_mysql.py listsave 172 sql execute
2016-07-15 16:24:42,177 DEBUG my_mysql.py listsave 173 insert into `strategy_set` (`paramete_set_id`,`m`,`n`,`p`,`strategy`,`need_update`) (...2016-07-15 16:24:54,394 DEBUG my_mysql.py listsave 175 sql executemany num: 128801
executemany十萬條 26秒
2016-07-15 16:27:57,545 DEBUG my_mysql.py listsave 162 insert into `strategy_set` (`paramete_set_id`,`need_update`) VALUES (%s,%s,%s) ON duplicate KEY UPDATE `need_update`=0
2016-07-15 16:27:57,545 DEBUG my_mysql.py listsave 163 [[37,1,2,10,'dzyj',1],[37,11,12,13,14,15,16,17,18,19,1]]...2016-07-15 16:28:23,786 DEBUG my_mysql.py listsave 165 sql executemany num: 128801
ps:如果在sql存入或更新資料時不加引號,則預設為數字,再根據資料庫中欄位的型別進行轉換。
如果存入000333到varchar欄位中,則會得到333值。
以上這篇將pymysql獲取到的資料型別是tuple轉化為pandas方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。