pyodbc:查询结果为CSV?

Tec*_*335 2 python pyodbc

我正在使用pyodbc访问数据库并打印查询结果.

如何使用pyodbc将整个查询结果(包括列)打印到csv文件?

码:

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()
Run Code Online (Sandbox Code Playgroud)

Gor*_*son 11

如何使用pyodbc将整个查询结果(包括列)打印到csv文件?

您不使用pyodbc"打印"任何内容,但您可以使用csv模块将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)
Run Code Online (Sandbox Code Playgroud)

生成包含的CSV文件

id,astronaut
1,John Glenn
2,"Edwin ""Buzz"" Aldrin"
Run Code Online (Sandbox Code Playgroud)