扁平化仅包含一个 dict 的列表
Posted
技术标签:
【中文标题】扁平化仅包含一个 dict 的列表【英文标题】:Flat a list of containing only one 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
列表将始终只包含一项
【问题讨论】:
【参考方案1】:您可以展平内部字典并将其更新回原始字典。 例如,
product = d.pop("product")[0]
flattened = f"product.key": value for key, value in product.items()
d.update(flattened)
这应该可以解决问题。
【讨论】:
哦,确实这是一个非常聪明的方法,谢谢@Kris!以上是关于扁平化仅包含一个 dict 的列表的主要内容,如果未能解决你的问题,请参考以下文章
使用 pandas json_normalize 扁平化包含多个嵌套列表的字典列表
数据结构与算法之深入解析“扁平化多级双向链表”的求解思路与算法示例
2021-11-08:扁平化嵌套列表迭代器。给你一个嵌套的整数列表 nestedList 。每个元素要么是一个整数,要么是一个列表;该列表的元素也可能是整数或者是其他列表。请你实现一个迭代器将其扁平化