python查询数据库并将结果写入Excel,保存至本地
最近在工作中,因为别的部门同事需要我帮忙每天查询固定的一些数据,懒病犯了,不想每天手动运行mysql查询语句,所以就想到了用python来操作mysql,每天定时自动将查询结果保存在一个大家都能看到的文件夹里,于是便有了下面一段:
# To add a new cell, type '# %%'# To add a new markdown cell, type '# %% [markdown]'# %%# -*- coding: utf-8 -*-"""时间:20200916用途:查询mysql数据,并保存至本地状态:test"""import pymysqlimport tracebackimport pandas as pdimport timefrom sqlalchemy import create_engineimport osimport numpy as npimport datetimeimport win32com.client as win32import sys#将sql查询结果转成DataFramedef mysql_to_df(sql,host,user,passwd,db,port,charset):"""将sql查询结果转成DataFrameparam sql:sql查询语句param host:mysql连接ipparam user:用户名param passwd:密码param db:需要使用的数据库param port:端口,默认3306charset:编码类型return df:查询结果,DateFrame格式"""# 打开数据库连接conn = pymysql.connect (host, user, passwd = passwd, db = db,port=port, charset=charset)try:results = pd.read_sql(sql,con=conn)print("+++查询成功+++")conn.close()return resultsexcept:print("=====错误,请检查sql代码=====")# 打印错误信息traceback.print_exc()# 如果发生错误则回滚conn.rollback()sql='''#以下是需要查询的mysql代码SELECT字段名1,字段名2,字段名3,……FROM tableWHERR 条件1and 条件2'''#SELECT * FROM runoob.银行扣款表 limit 7df= mysql_to_df(sql,'ip','用户名','密码','数据库',端口,'编码类型')write_in_time = time.strftime('%Y%m%d_%H%M%S') #写入时间,可有可无file_name = "C:test/test1/"+str(write_in_time)+"中文名.xlsx"df.to_excel(file_name,index=False,encoding="utf_8_sig")
关于如何定时调用python的问题,等我整理好再做介绍哈,未完待续……
