1. 程式人生 > 資料庫 >將pymysql獲取到的資料型別是tuple轉化為pandas方式

將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方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。