如何使用 csvwriter 在 Python 中编写标题列表?

问题描述

我正在尝试使用以下代码

cursor = connect.cursor()
    sqlSelect = "SELECT to_char(t.create_date,'DD-MM-YYYY') AS CreatedDate,t.ticket_number AS TicketNo,p.name AS Priority,t.person_name AS Person,t.subject AS Subject,s.name AS State,to_char(t.close_date,'DD-MM-YYYY') AS ClosedDate FROM website_support_ticket t INNER JOIN website_support_ticket_priority p ON p.id = t.priority_id INNER JOIN website_support_ticket_state s ON s.id = t.state_id ORDER BY CreatedDate"
    try:
        cursor.execute(sqlSelect)
        results = cursor.fetchall()
        headers = [i[0] for i in cursor.description]
        csvFile = csv.writer(open(filePath + fileName,'w'),delimiter=',',lineterminator='\r\n',quoting=csv.QUOTE_ALL,escapechar='\\')

        csvFile.writerows(headers)
        csvFile.writerows(results)

当我打印标题输出就像

('headers',['createddate','ticketno','priority','person','subject','state','closeddate'])

标题只是不像标题那样写入 CSV,

Headers in CSV as of now

关于如何仅在第一行打印标题的任何建议?截至目前,标题的每个字母都进入不同的行。

任何建议或修复都会非常有帮助。

解决方法

使用 writerow 添加作为列表传递的单行:

csvFile.writerow(headers)
,

试试:

headers = ",".join(cursor.description)

不确定 cursor.description 是否作为列表传回。

所以快速检查我自己的东西,它作为一个元组返回。这会搞砸上面的。

headers = ",".join([i[0] for i in cursor.description])