Как я могу записать данные из словаря в файл CSV в Python - PullRequest
2 голосов
/ 06 июня 2011

У меня есть следующие данные в словаре:

{'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 Ответ

3 голосов
/ 06 июня 2011

Сначала преобразуйте свою структуру в список словарей.Примерно так (возможно, более компактно):

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 , чтобы получить свой CSV из rows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...