簡體   English   中英

將MySQL查詢結果保存為CSV文件

[英]Saving MySQL query results to a CSV file

我有兩個查詢,我想在一個CSV文件中一起保存。 我可以單獨執行此操作,但我無法弄清楚如何將這兩個文件復制到一個文件中(不合並,只是將列從一個文件復制到另一個文件)所以也許我可以在SQL源查詢中執行此操作。

import MySQLdb, csv
dbServer = 'localhost'
dbUser = 'root'
dbPass = 'password'
dbSchema = 'Name_of_Database'
db = MySQLdb.connect(host=dbServer, user=dbUser,passwd=dbPass,db=dbSchema)
cursor = db.cursor()
cursor.execute("""SELECT * FROM temperature_tbl WHERE Mac_Address = %s AND Date =   CURDATE() ORDER BY Time asc;""",(mac))
first_set = cursor.fetchall()

cursor.execute("""SELECT row1, row2, row3, row4 FROM temperature_tbl WHERE Mac_Address = "xx xx xx xx xx xx" AND Date = CURDATE() ORDER BY Time asc;""")
second_set = cursor.fetchall()

既然我有這兩個查詢的元組結果,那么可以在CSV文件中同時寫入它們嗎? 例如:

csv_file = open('filename', 'w')
writer = csv.writer(csv_file)
writer.writerow(['col1', 'col2', 'col3', 'col4', 'col5', etc etc etc])
writer.writerows(first_set + second_set)
csv_file.close()

只要兩個查詢的結果與行標題匹配,這將是完美的。

編輯1:好的,這個怎么樣。 我如何將兩個元組元組連接在一起,這樣我就不會延長元組的長度,而是將它們並行加入? 如果我只是添加tuple1 + tuple2,它會擴展列表的長度,但我希望它們並排。 例如:

Tuple1:    Tuple2:
x,x,x,x    y,y,y,y
x,x,x,x    y,y,y,y
x,x,x,x    y,y,y,y

如果我做tuple1 + tuple2我得到:

x,x,x,x
x,x,x,x
x,x,x,x
y,y,y,y
y,y,y,y
y,y,y,y

我真正想要的是:

x,x,x,x,y,y,y,y
x,x,x,x,y,y,y,y
x,x,x,x,y,y,y,y

然后我可以使用writer()並通過刪除額外的列來修改CSV(例如,Date被引用兩次)。

這可能嗎?

EDIT2 - 解決方案

這就是我做的。 我做了幾個SQL查詢,然后list.appended每個查詢結果到一個大的列表。 這像我想要的那樣水平延伸。 然后我能夠使用writer()以我想要的方式獲得完整的CSV文件。

您基本上想要將列添加到CSV文件中,因此請查看此處: 如何使用Python將新列添加到CSV文件中?

EDIT2 - 解決方案

這就是我做的。 我做了幾個SQL查詢,然后list.appended每個查詢結果到一個大的列表。 這像我想要的那樣水平延伸。 然后我能夠使用writer()以我想要的方式獲得完整的CSV文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM