我在字典中有以下数据:
{'323503': [{'name': 'Derek', 'age': '21', 'race': 'white'}, {'name': 'Josh', 'age': '15', 'race': 'white'}, {'name': 'Adam', 'age': '32', 'weight': '180'}],
'3802': [{'name': 'Abe', 'age': '12', 'weight': '132', 'race': 'black'}, {'name': 'Amy', 'age': '31', 'weight': '180'}],
'290301': [{'name': 'Sally', 'age': '25'}, {'name': 'Joe', 'age': '18'}]
}
如何使用Python将其导出到csv文件,以便csv文件包含:
id, name, age, weight, race
323503, Derek, 21, , white
323503, Josh, 15, , white
323503, Adam, 32, 180,
3802, Abe, 12, 132, black
3802, Amy, 31, 180,
290301, Sally, 25, ,
290301, Joe, 18, ,
答案 0 :(得分:3)
首先,在词典列表中转换您的结构。 这样的事情(可能是更紧凑的方式):
data = {'323503': [{'name': 'Derek', 'age': '21', 'race': 'white'}, {'name': 'Josh', 'age': '15', 'race': 'white'}, {'name': 'Adam', 'age': '32', 'weight': '180'}],
'3802': [{'name': 'Abe', 'age': '12', 'weight': '132', 'race': 'black'}, {'name': 'Amy', 'age': '31', 'weight': '180'}],
'290301': [{'name': 'Sally', 'age': '25'}, {'name': 'Joe', 'age': '18'}]
}
rows = []
for id_ in data:
for row in data[id_]:
row.update({'id': id_})
rows.append(row)
然后使用csv.DictWriter从rows
获取您的csv。