1. 程式人生 > 其它 >pandas讀取mysql並匯出為excel

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的目錄位置。