pandas读取mysql并导出为excel
前言
业务需要从数据库导出数据为excel,并设置成自动化。这里用pandas写的数据导入导出,还算方便。配合crontab + shell脚本使用,每天晚上自动生成excel,然后cp
到指定目录。shell脚本比较简单就不展示了,下面是python代码。
PS:如果服务器网络隔离不方便安装依赖,可以用pyinstaller
打包成可执行文件。
安装依赖
pip install pandas sqlalchemy pymysql openpyxl -i https://mirrors.aliyun.com/pypi/simple
code
import pandas as pd
from sqlalchemy import create_engine
# 创建连接器
engine = create_engine("mysql+pymysql://username:password@ip:port/db_name")
def get_yesterday():
"""获取昨天的日期"""
today=datetime.date.today()
oneday=datetime.timedelta(days=1)
yesterday=today-oneday
return yesterday
start_time = get_yesterday().isoformat() + " " + "08:00:00"
end_time = get_yesterday().isoformat() + " " + "21:00:00"
# SQL语句
# 指定日期时间
sql1 = """
select *
from cdr_2019_copy1
where start_time>="2019-07-02 08:55:00" and end_time < "2019-07-02 09:00:00";
"""
# 动态语句
sql2 = 'select * from cdr where start_time >= "' + start_time + '" and end_time < "' + end_time + '" ;'
# 读取数据库数据为dataframe
df1 = pd.read_sql(sql,engine)
print(df1)
# 导出为excel文件
filename = get_yesterday().strftime("%Y%m%d") + ".xlsx"
df2.to_excel(filename, index=False)
打包
pyinstaller -F -p C:\software\python\Lib\site-packages hello.py
如果用到了pymysql库,最好指定site-packages的目录位置。
本文来自博客园,作者:花酒锄作田,转载请注明原文链接:https://www.cnblogs.com/XY-Heruo/p/14962414.html