Python 将嵌套的DICT列表转换为DICT的平面列表

Python 将嵌套的DICT列表转换为DICT的平面列表,python,Python,如何转换此字典结构 [ { 'city': 'Fake City', 'streets': {'Fake Street', 'Fake Way'}}, { 'city': 'Ocean City', 'streets': {'Ocean Street', 'Ocean Way'}}, { 'city': 'Forest City', 'streets': {'Forest Street', 'Forest Way'}}, ] 你喜欢这个吗 [ { 'city':

如何转换此字典结构

[
    { 'city': 'Fake City', 'streets': {'Fake Street', 'Fake Way'}},
    { 'city': 'Ocean City', 'streets': {'Ocean Street', 'Ocean Way'}},
    { 'city': 'Forest City', 'streets': {'Forest Street', 'Forest Way'}},
]
你喜欢这个吗

[
    { 'city': 'Fake City', 'street': 'Fake Street'},
    { 'city': 'Fake City', 'street': 'Fake Way'},
    { 'city': 'Ocean City', 'street': 'Ocean Street'},
    { 'city': 'Ocean City', 'street': 'Ocean Way'},
    { 'city': 'Forest City', 'street': 'Forest Street'},
    { 'city': 'Forest City', 'street': 'Forest Way'}
]
对不起,这是一般性的标题。也许我只是错过了正确的术语


我可以试着循环这些项目。一个内置的函数或库就好了。

迭代街道上的所有项目,并与城市相结合

a = [
        { 'city': 'Fake City', 'streets': {'Fake Street', 'Fake Way'}},
        { 'city': 'Ocean City', 'streets': {'Ocean Street', 'Ocean Way'}},
        { 'city': 'Forest City', 'streets': {'Forest Street', 'Forest Way'}},
    ]

res = []
for item in a:
    for st in item["streets"]:
        res.append({"city": item["city"], "streets": st})

res


[{'city': 'Fake City', 'streets': 'Fake Street'},
 {'city': 'Fake City', 'streets': 'Fake Way'},
 {'city': 'Ocean City', 'streets': 'Ocean Street'},
 {'city': 'Ocean City', 'streets': 'Ocean Way'},
 {'city': 'Forest City', 'streets': 'Forest Way'},
 {'city': 'Forest City', 'streets': 'Forest Street'}]

你试过打圈吗?怎么搞的?给出一个例子。我同意@jonrsharpe的观点,循环看起来是一个明显的选择,但如果你没有尝试过,它属于任何自动执行此类操作的库,那么学习如何使用它要比使用特定的循环构造来创建所需的记录困难得多。我可以尝试循环项目。你应该。这似乎相当简单,那么到底是什么问题呢?