2011-06-06 68 views
2

我有一本字典以下数据:我怎么能写从字典到一个CSV文件中的数据在Python

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

查看'csv'模块。 – pisswillis 2011-06-06 16:20:33

回答

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。

+0

非常感谢! – user728166 2011-06-06 16:57:30

+0

请注意'row.update(...)'更改原始字典('data') – Don 2011-06-06 17:07:24

相关问题