Python 格式化使用PyODBC创建的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

我使用以下代码查询SQL Server数据库,并将返回的结果存储在CSV文件中

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()
连接。关闭()