我嘗試將查詢結果從 mysql 匯出到 Excel 表。我使用 Msqlconnector、pandas 庫,我就是這樣做的。
import mysql.connector
import pandas as pd
db = mysql.connector.connect(
host="SQLServer",
user="sqlusr",
password="usrpasswd",
database="sqldb"
)
cur = db.cursor()
cur.execute("SELECT * FROM direction_prix_proxi.matrice_sigma" \
" LEFT JOIN direction_pri.trans_int_prix_gen using(SIGMA, UV)" \
" LEFT JOIN direction_pri.trans_int_prix_module using(SIGMA, UV)" \
" LEFT JOIN direction_pri.trans_int_vol1an_hors_module using(SIGMA, UV)" \
" LEFT JOIN direction_pri.trans_int_vol1an_module using(SIGMA, UV);")
df = pd.DataFrame(cur.fetchall())
df.to_excel(file_path1, index = False, header=True)
它有效,但列名不在 Excel 表中,我用數字代替。
我發現有一個函式 For get the columns names 但我沒有成功地在結果中實作它。
print(cur.column_names)
我發現的其他解決方案:
result = cur.fetchall()
num_fields = len(cur.description)
field_names = [i[0] for i in cur.description]
print(field_names)
for value in result:
print(value)
它在控制臺中顯示結果,我想將其存盤在資料框中以便在 excel 上匯出。我怎樣才能做到這一點?
謝謝
uj5u.com熱心網友回復:
我不確定是否使用游標,但是在執行此操作時我使用以下格式并且它有效。
import mysql.connector
import pandas as pd
db_conn = mysql.connector.connect(
host="SQLServer",
user="sqlusr",
password="usrpasswd",
database="sqldb"
)
query = """SELECT * FROM direction_prix_proxi.matrice_sigma
LEFT JOIN direction_pri.trans_int_prix_gen using(SIGMA, UV)
LEFT JOIN direction_pri.trans_int_prix_module using(SIGMA, UV)
LEFT JOIN direction_pri.trans_int_vol1an_hors_module using(SIGMA, UV)
LEFT JOIN direction_pri.trans_int_vol1an_module using(SIGMA, UV);
"""
df = pd.read_sql(query, db_conn)
df.to_excel(file_path1, index = False, header=True)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/397678.html
上一篇:熊貓cumsum并重新開始
