Python 格式化使用PyODBC创建的CSV文件
我使用以下代码查询SQL Server数据库,并将返回的结果存储在CSV文件中Python 格式化使用PyODBC创建的CSV文件,python,sql,format,writer,pypyodbc,Python,Sql,Format,Writer,Pypyodbc,我使用以下代码查询SQL Server数据库,并将返回的结果存储在CSV文件中 import pypyodbc import csv connection = pypyodbc.connect('Driver={SQL Server};' 'Server=localhost;' 'Database=testdb;') cursor = connection.cursor() S
import pypyodbc
import csv
connection = pypyodbc.connect('Driver={SQL Server};'
'Server=localhost;'
'Database=testdb;')
cursor = connection.cursor()
SQLCommand = (""" SELECT A as First,
SELECT B as Second,
FROM AB """)
cursor.execute(SQLCommand)
results = cursor.fetchall()
myfile = open('test.csv', 'w')
wr = csv.writer(myfile,dialect='excel')
wr.writerow(results)
connection.close()
SQL命令只是一个示例,我的查询包含更多的列,这只是为了示例
使用此代码,我的CSV如下所示:
但我希望我的CSV看起来像这样,而且我希望标题也能显示出来,如下所示:
我猜格式化需要在代码的“csv.writer”部分完成,但我似乎无法理解。有人能指引我吗 您看到的是奇怪的输出,因为
fetchall
返回多行输出,但您使用的是writerow
而不是writerows
来转储它们。您需要使用writerow
输出一行列标题,然后使用writerow
输出实际结果:
打开(r'C:\Users\Gord\Desktop\test.csv',w',newline='')作为我的文件:
wr=csv.writer(myfile)
wr.writerow([x[0]表示游标中的x.description])#列标题
wr.writerows(cursor.fetchall())
cursor.close()
连接。关闭()