【问题标题】:Flat a list of containing only one dict扁平化仅包含一个 dict 的列表
【发布时间】:2022-01-17 15:58:07
【问题描述】:

我有一个字典,其中包含一个列表product,它只包含一个字典:

d = {
    "thickness": 90.0,
    "mass_surf": 37.8,
    "res_therm": 0.75,
    "codename": "codename1",
    "category": "category1",
    "sub_categories": [
        "sub_categories1"
    ],
    "secondary_targets": [
        "secondary_targets1",
        "secondary_targets2",
        "secondary_targets3"
    ],
    "product": [
        {
            "codename": "codename1",
            "purpose": "purpose1",
            "category": "category1",
            "material": "material1"
        }
    ]
}

我想将 dict 的product 列表变平以获得这个:

d = {
    "thickness": 90.0,
    "mass_surf": 37.8,
    "res_therm": 0.75,
    "codename": "codename1",
    "category": "category1",
    "sub_categories": [
        "sub_categories1"
    ],
    "secondary_targets": [
        "secondary_targets1",
        "secondary_targets2",
        "secondary_targets3"
    ],
    "product.codename": "codename1",
    "product.purpose": "purpose 1",
    "product.purpose": "purpose1",
    "product.category": "category1",
    "product.material": "material1"
}

我该怎么做?

product 列表将始终只包含一项

【问题讨论】:

    标签: python arrays python-3.x list dictionary


    【解决方案1】:

    您可以展平内部字典并将其更新回原始字典。 例如,

    product = d.pop("product")[0]
    flattened = {f"product.{key}": value for key, value in product.items()}
    d.update(flattened)
    

    这应该可以解决问题。

    【讨论】:

    • 哦,确实这是一个非常聪明的方法,谢谢@Kris!
    猜你喜欢
    • 2019-11-29
    • 2012-05-25
    • 2022-01-17
    • 2016-01-14
    • 2018-07-07
    • 2010-12-13
    • 2022-10-24
    • 1970-01-01
    相关资源
    最近更新 更多