在python中写一个有序字典列表到csv文件

时间:2013-10-14 19:31:41

标签: python csv ordereddictionary

使用

读取CSV文件后
with open(filename, 'r') as f:
  reader = csv.DictReader(f)
  for line in reader:
    date = line['Date']

每一行都是OrderedDict

OrderedDict([
    ('Date', '2008-03-20'), 
    ('Name', 'Some name'),...)
])

我想使用列表中第一个字典的键作为列标题,将这个有序字典列表写入python中的csv文件。

2 个答案:

答案 0 :(得分:10)

使用csv.DictWriter对象为您完成所有繁重的工作:

import csv
with open('spreadsheet.csv', 'w') as outfile:
    fp = csv.DictWriter(outfile, list_of_dicts[0].keys())
    fp.writeheader()
    fp.writerows(list_of_dicts)

它会创建一个新的CSV,为它写一个标题行,以便您知道每列代表什么,然后将每个dict写成一行,所有列的顺序与标题列的顺序相同。

答案 1 :(得分:1)

import csv
header = [key for key in list[0].iterkeys()]
out_file = csv.writer(open("out.csv", "w"))
out_file.write(header)
for line in list:
    out_file.writerow(line.itervalues())