2017-03-16 112 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