pyodbc:查询结果为CSV? [英] pyodbc: query results to CSV?

查看:50
本文介绍了pyodbc:查询结果为CSV?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am using pyodbc to access a database and print the query results.

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

How do I use pyodbc to print the whole query result including the columns to a csv file?

代码:

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()

推荐答案

如何使用 pyodbc 将包括列在内的整个查询结果打印到 csv 文件中?

How do I use pyodbc to print the whole query result including the columns to a csv file?

您不使用 pyodbc 来打印"任何东西,但您可以使用 csv模块将pyodbc查询的结果转储到CSV.

You don't use pyodbc to "print" anything, but you can use the csv module to dump the results of a pyodbc query to CSV.

作为一个最小的例子,这对我有用:

As a minimal example, this works for me:

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"

这篇关于pyodbc:查询结果为CSV?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆