Python读取Mysql语句并写入Excel文档,常用两种方式,但略有不同。通过Python读取SQL可以实现多个语句同时执行,极大提高工作效率。
方式一: #导入模块pandas pymysql import pandas as pd import pymysql connect = pymysql.connect(host="localhost", user="xxx",password="xxxxx",port=xxxx,database="xxxxx",charset="utf8") df =pd.read_sql( """ SELECT a.affair_name 事件,a.affair_code 编码,left(a.apply_date,999) 申请申请间,left(a.accept_time,999) 受理时间, left(a.end_date_time,999) 办结时间 ,a.area_name 地区FROM people_affair a limit 10""",con=connect) #写入Excel df.to_excel("C:\\Users\\15101\\Desktop\\明细\\" +"群众投诉表" +".xlsx",index = False) #con =conn 是一个引擎 #运用read_sql 导出数据可以有字段别名 #注意这里需要用三引号,原因在于sql 里面包含了双引号,避免引号混乱 方式二: import pymysql import pandas as pd connect = pymysql.connect(host="localhost", user="xxx",password="xxx",port=xxx,database="xxx",charset="xxxx") cursor = connect.cursor() cursor.execute(""" SELECT a.affair_name ,a.affair_code ,left(a.apply_date,999) ,left(a.accept_time,999) , left(a.end_date_time,999),a.area_name FROM people_affair a """) # 注意这里需要用三引号,原因在于sql 里面包含了双引号,避免引号混乱,不然报错 result= cursor.fetchall() #给执行结果字段命名 df = pd.DataFrame(result,columns=['事件','编码','申请时间','受理时间','办结时间','地区']) df.to_excel("C:\\Users\\15101\\Desktop\\明细\\" +"群众投诉表" +".xlsx",index = False) connect.close() cursor.close()
综上:两种方式主要不同在于:方式1中sql语句字段命别名,写入Excel后字段就是命的别名;方式2中,sql语句字段命别名是无效的,必须在导出结果后添加字段命别名。若为了数据分析,建议方式二处理数据。