我有一份python字典的清单,我试图将这些值写入csv文件,但是由于某些原因,我不断收到 _csv.Error:需要序列
这是示例代码:
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())
任何帮助将不胜感激。
答案 0 :(得分:1)
在python 3中,values()
不再返回list
。您必须先将其转换:
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