pandas讀取mysql並匯出為excel
阿新 • • 發佈:2021-07-02
前言
業務需要從資料庫匯出資料為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的目錄位置。