7

使用读取 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 文件。

4

2 回答 2

11

使用一个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 写为一行,其中所有列的顺序与标题列相同。

于 2013-10-14T20:20:30.233 回答
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())
于 2013-10-14T20:11:08.700 回答