Python 将dict的dict写入CSV,每行一个键/值,键填充列

Python 将dict的dict写入CSV,每行一个键/值,键填充列,python,loops,csv,dictionary,key,Python,Loops,Csv,Dictionary,Key,我想把一本字典写进一个CSV文件, 每行一个键/值 字典如下所示: d = {'animal':{'reptile':['lizard', 'snake']},'food': {'meat': ['bacon', 'lamb', 'beef']}} animal,reptile,lizard animal,reptile,snake food,meat,bacon food,meat,lamb food,meat,beef 所需的CSV文件如下所示: d = {'animal':{'rept

我想把一本字典写进一个CSV文件, 每行一个键/值

字典如下所示:

d = {'animal':{'reptile':['lizard', 'snake']},'food': {'meat': ['bacon', 'lamb', 'beef']}}
animal,reptile,lizard
animal,reptile,snake
food,meat,bacon
food,meat,lamb
food,meat,beef
所需的CSV文件如下所示:

d = {'animal':{'reptile':['lizard', 'snake']},'food': {'meat': ['bacon', 'lamb', 'beef']}}
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循环有问题,我尝试了一些变化,但仍然卡住了。我已经搜索和阅读了一些帖子,但没有找到一个对我的情况有帮助的答案。您能指出我在这里遗漏了什么吗?

您需要使用每个循环的值作为在下一个循环中迭代的对象。另外,两个循环都需要使用
items()
,而不是
keys()


试着打印d.keys()-你会看到它只是外部dict的键。明白了。谢谢你,丹尼尔!我对这个循环感到困惑。对,应该是东西循环的项目,无论是内部项目还是外部项目。这会像两周前一样救了我的屁股!很高兴我终于找到了。