【问题标题】:Formatting CSV file created using pypyodbc格式化使用 pypyodbc 创建的 CSV 文件
【发布时间】:2017-02-07 17:30:51
【问题描述】:

我正在使用以下代码查询 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”部分中完成,但我似乎无法弄清楚。有人可以指导我吗?

【问题讨论】:

    标签: python sql format writer pypyodbc


    【解决方案1】:

    您看到了奇怪的输出,因为fetchall 返回多行输出,但您使用writerow 而不是writerows 将它们转储出去。需要使用writerow输出单行列标题,后跟writerows输出实际结果:

    with open(r'C:\Users\Gord\Desktop\test.csv', 'w', newline='') as myfile:
        wr = csv.writer(myfile)
        wr.writerow([x[0] for x in cursor.description])  # column headings
        wr.writerows(cursor.fetchall())
    cursor.close()
    connection.close()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-05
      • 2016-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多