Python 与_csv.Error有关的问题:应为序列
我有一个python字典列表,我正试图将这些值写入csv文件,但由于某种原因,我一直得到\u csv.Error:sequence expected 以下是示例代码:Python 与_csv.Error有关的问题:应为序列,python,python-3.x,csv,dictionary,Python,Python 3.x,Csv,Dictionary,我有一个python字典列表,我正试图将这些值写入csv文件,但由于某种原因,我一直得到\u csv.Error:sequence expected 以下是示例代码: import csv import os, sys headers = ['id', 'Info'] data = [{'id': 1, 'Info': 'Example 1'}, {'id': 2, 'Info':'Example 2'}] with open('all_csv.csv', 'wt') as f: wr
import csv
import os, sys
headers = ['id', 'Info']
data = [{'id': 1, 'Info': 'Example 1'}, {'id': 2, 'Info':'Example 2'}]
with open('all_csv.csv', 'wt') as f:
writer = csv.writer(f, delimiter=',')
writer.writerow(headers)
for each in data:
writer.writerow(each.values())
任何帮助都将不胜感激。在Python3中,values()
不再返回列表。您必须首先转换它:
writer.writerow(list(each.values()))
请注意,字典没有排序,因此列的顺序没有定义(除非您使用的是Python 3.6或更高版本),因此可能需要使用csv.DictWriter
对象,以避免标题与行不匹配
下面是我如何使用csv.DictWriter
:
import csv
data = [{'id': 1, 'Info': 'Example 1'}, {'id': 2, 'Info':'Example 2'}]
with open('all_csv.csv', 'w', newline="") as f:
writer = csv.DictWriter(f, fieldnames = data[0], delimiter=',')
writer.writeheader()
writer.writerows(data)
输出为:
Info,id
Example 1,1
Example 2,2
谢谢你的帮助。标题在9列中,有没有一种方法可以简单地在列表中定义标题?我注意到我的输出现在已经混乱了:(将标题
作为字段名传递也应该可以。但是字段名必须与键完全匹配。你是一个救生员:)