2017-03-16 111 views
1

我使用pyodbc來訪問數據庫並打印查詢結果。pyodbc:查詢結果爲CSV?

如何使用pyodbc將包括列在內的整個查詢結果打印到csv文件?

CODE:

import pyodbc 

cnxn = pyodbc.connect(
    #DATA BASE NAME IS HERE, HID FOR PRIVACY ) 


cursor = cnxn.cursor() 

cursor.execute(""" #COMMAND GOES HERE """) 


row = cursor.fetchall() #FETCHES ALL ROWS 

cnxn.commit() 
cnxn.close() 
+0

這顯然是主觀的,但我做到這一點使用熊貓一個CSV文件:http://pandas.pydata .org/pandas-docs/stable/generated/pandas.read_sql.html –

回答

6

如何使用pyodbc打印整個查詢結果包括列到CSV文件?

您不使用pyodbc「打印」任何內容,但可以使用csv module將pyodbc查詢的結果轉儲爲CSV。

作爲一個小例子,這個工作對我來說:

import csv 
import pyodbc 
conn = pyodbc.connect("DSN=myDb") 
crsr = conn.cursor() 
# test data 
sql = """\ 
SELECT 1 AS id, 'John Glenn' AS astronaut 
UNION ALL 
SELECT 2 AS id, 'Edwin "Buzz" Aldrin' AS astronaut 
""" 
rows = crsr.execute(sql) 
with open(r'C:\Users\gord\Desktop\astro.csv', 'w', newline='') as csvfile: 
    writer = csv.writer(csvfile) 
    writer.writerow([x[0] for x in crsr.description]) # column headers 
    for row in rows: 
     writer.writerow(row) 

生產含

id,astronaut 
1,John Glenn 
2,"Edwin ""Buzz"" Aldrin" 
+0

謝謝。有道理,我必須使用csv模塊。 – Techno04335