将pymysql获取到的数据类型是tuple转化为pandas方式
我就废话不多说了,大家还是直接看代码吧!
#执行结果转化为dataframe df=pd.DataFrame(list(result))
补充知识:pythonpymysql注意事项
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-1516:24:42,177DEBUGmy_mysql.pylistsave172sqlexecute
2016-07-1516:24:42,177DEBUGmy_mysql.pylistsave173insertinto`strategy_set`(`paramete_set_id`,`m`,`n`,`p`,`strategy`,`need_update`)(...
2016-07-1516:24:54,394DEBUGmy_mysql.pylistsave175sqlexecutemanynum:128801
executemany十万条26秒
2016-07-1516:27:57,545DEBUGmy_mysql.pylistsave162insertinto`strategy_set`(`paramete_set_id`,`m`,`n`,`p`,`strategy`,`need_update`)VALUES(%s,%s,%s,%s,%s,%s)ONduplicateKEYUPDATE`need_update`=0
2016-07-1516:27:57,545DEBUGmy_mysql.pylistsave163[[37,1,2,10,'dzyj',1],[37,1,2,11,'dzyj',1],[37,1,2,12,'dzyj',1],[37,1,2,13,'dzyj',1],[37,1,2,14,'dzyj',1],[37,1,2,15,'dzyj',1],[37,1,2,16,'dzyj',1],[37,1,2,17,'dzyj',1],[37,1,2,18,'dzyj',1],[37,1,2,19,'dzyj',1]]...
2016-07-1516:28:23,786DEBUGmy_mysql.pylistsave165sqlexecutemanynum:128801
ps:如果在sql存入或更新数据时不加引号,则默认为数字,再根据数据库中字段的类型进行转换。
如果存入000333到varchar字段中,则会得到333值。
以上这篇将pymysql获取到的数据类型是tuple转化为pandas方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。