[英]How can I flat a list of dicts?
我有一个字典,其中包含一个仅包含一个字典的列表product
:
dic = {
"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
列表来获得这个:
dic = {
"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
列表将始终只包含一项
假设您在子列表中只有一项,您可以使用以下字典理解:
out = {'.'.join([k1,k2]) if k2 else k1: v2
for k1,v1 in d.items()
for k2,v2 in (v1[0] if isinstance(v1, list) else {None: v1}).items()
}
output:
{'product.codename': 'codename1',
'product.name': 'name1',
'product.category': 'category1',
'message': 'message1'}
注意。 如果您可以在列表中包含多个项目,请说明如何处理它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.