python在制作一些小工具上本身就有著得天獨厚的優勢,大多數非標準庫的應用只需要進行簡單的安裝即可使用。
比如:使用python將excel中的數據導入到mysql數據庫表中,或是將mysql數據庫表中的數據直接導出為excel都只需要簡單的幾行代碼就可以完成,假如使用Java來做這件事強那可就有些復雜了呢。
話不多說,接下來直接進入正題...
這里使用兩個python的非標準庫來操作,一個是我們比較熟悉的pandas非標準庫,使用它來完成excel相關的數據操作。
另外一個則是sqlalchemy非標準庫,使用它來完成對mysql數據庫表的相關數據操作。
使用pip的方式將這兩個非標準庫安裝好,下面是安裝命令:
pip install sqlalchemy
pip install pandas
準備好以后,先來編寫一個函數mysql_to_excel將數據從mysql數據庫表中導出到excel的數據操作。
from sqlalchemy import create_engine
import pandas as pd
def mysql_to_excel():
'''
將mysql數據導出到excel數據表中
:return:
'''
# 使用create_engine函數創建數據庫連接,其中數據庫的用戶名和密碼分別是root/root,數據庫名稱為test
engine = create_engine('mysql+pymysql://root:root@localhost/test')
# 使用sql語句讀取data表中的所有數據
data_frame = pd.read_sql(sql='select * from test.data', con=engine)
# 將sql查詢出來的數據導出到excel數據表中
data_frame.to_excel('data.xlsx')
可以發現,pandas非標準庫提供了read_sql函數來讀取數據,并且返回的數據類型是DataFrame數據類型。最后,將DataFrame的數據直接保存到excel中,主邏輯的實現只用了三行代碼就完成了,這就是python的魅力。
隨后,再來編寫一下函數excel_to_mysql將數據從excel中直接導出到數據庫表中,為了保證下面函數的獨立性,于是我把用到的庫又導入了一遍。
from sqlalchemy import create_engine
import pandas as pd
def excel_to_mysql():
# 使用create_engine函數創建數據庫連接,其中數據庫的用戶名和密碼分別是root/root,數據庫名稱為test
engine = create_engine('mysql+pymysql://root:211314@localhost/test')
# 使用pandas非標準庫提供的read_excel函數將data.xlsx文件中的數據全部讀取出來
data_frame = pd.read_excel('data.xlsx')
# 將DataFrame格式的數據通過to_sql函數保存到數據庫中,這個時候它會自動創建一個數據庫表,也就是data表
data_frame.to_sql(name='data', con=engine, index=False, if_exists='replace')
在導入數據庫表的時候是DataFrame數據對象直接提供了to_sql函數進行數據的插入操作,連sql語句都不用寫。這個DataFrame對象的操作還真是強大呢,它是excel數據分析、數據提取中永遠的神。
最后,感謝大家的閱讀,我會不斷學習努力更新出更好的干貨~
【往期精彩】
python 實現超快窗口截圖,自動獲取當前活動窗口并展示截圖...
怎么用python做一個解壓縮小工具,以后再也不用下載各種格式的解壓縮軟件了...
python中最簡單的turtle繪圖:奧運五環!
知識匯總:python辦公自動化應該學習哪些內容?
python多線程同步售票系統解決思路...