如何在Python中将数据从字典写入CSV文件

时间:2011-06-06 16:17:46

标签: python csv dictionary

我在字典中有以下数据:

{'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, ,

1 个答案:

答案 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.DictWriterrows获取您的csv。