我正在尝试将嵌套字典写入 .csv 文件。这是一个简单的例子:
import csv
import itertools
fields = [ 'org', '2015', '2014', '2013' ]
dw = { 'orgname1': { '2015' : 2, '2014' : 1, '2013' : 1 },
'orgname2': { '2015' : 1, '2014' : 2, '2013' : 3 },
'orgname3': { '2015' : 1, '2014' : 3, '2013' : 1 }
}
with open("test_output.csv", "wb") as f:
w = csv.writer( f )
years = dw.values()[0].keys()
for key in dw.keys():
w.writerow([key, [dw[key][year] for year in years]])
这为我提供了一个包含两列的表格:第一列包含 orgname
;第二列包含 orgname
;第二个包含 [2, 1, 1] (或子词典中的相应值)。我想要一个包含四列的表格:一列用于 orgname
,然后三列用于相应的列表元素。
最佳答案
这看起来像是 DictWriter
的工作:
import csv
import itertools
import sys
fields = [ 'org', '2015', '2014', '2013' ]
dw = { 'orgname1': { '2015' : 2, '2014' : 1, '2013' : 1 },
'orgname2': { '2015' : 1, '2014' : 2, '2013' : 3 },
'orgname3': { '2015' : 1, '2014' : 3, '2013' : 1 }
}
w = csv.DictWriter( sys.stdout, fields )
for key,val in sorted(dw.items()):
row = {'org': key}
row.update(val)
w.writerow(row)
关于Python:将嵌套字典写入 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29400631/