Записать dict из dict в CSV с одним ключом / значением на строку с ключами, заполняющими столбцы - PullRequest
0 голосов
/ 28 февраля 2019

Я хочу записать словарь словарей в файл CSV с одним ключом / значением на строку.

Словарь выглядит так:

d = {'animal':{'reptile':['lizard', 'snake']},'food': {'meat': ['bacon', 'lamb', 'beef']}}

Нужный файл CSV будетбыть таким:

animal,reptile,lizard
animal,reptile,snake
food,meat,bacon
food,meat,lamb
food,meat,beef

Мой код:

import csv
d = {'animal':{'reptile':['lizard', 'snake']},'food': {'meat': ['bacon', 'lamb', 'beef']}}

f= open('file.csv', 'w', newline='')
with open('file.csv', 'w', newline='') as f:  
    writer = csv.writer(f,delimiter=',')
    for key, key2s in d.keys():
        for key2, values in d.items():
            for value in values:    
                writer.writerow([key, key2, value])

Я знаю, что здесь что-то не так с циклами for, и я попробовал варианты и все еще застрял.Я искал и читал некоторые сообщения, но не нашел ответа, который помог бы моей ситуации.Не могли бы вы указать, что я здесь пропустил?

1 Ответ

0 голосов
/ 28 февраля 2019

Вам нужно использовать значение из каждого цикла в качестве итерации в следующем цикле.Кроме того, обе петли должны использовать items(), а не keys().

for key, value in d.items():
    for inner_key, inner_value in value.items():
        for item in inner_value:
            writer.writerow(key, inner_key, item)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...