Python将特定键值对列表转标准字典及结构名称咨询
如何将含name/value的字典列表转换为标准键值对字典?
我有一个返回SOAP XML事件详情的webhook,第一步已将其转换为JSON,得到的部分数据中,
param字段是包含多个字典的列表,每个字典含name和value键值对,分别存储键名与对应值。我想了解该结构名称,同时希望通过Python循环将其转换为标准键值对字典,以获得更简洁易访问的webhook事件告警格式。
输入JSON片段:
"param": [ { "name": "processStepId", "value": "" }, { "name": "processVariantName", "value": "Default Onboarding Process" }, { "name": "personUuid", "value": "330790C275C5423DAB551676247FC935" }, { "name": "onbStableId", "value": "48E7ABAA133F4370ABBD8837C9E3CD7F" }, { "name": "personIdExternal", "value": 4890 } ]
期望输出字典:
{ "processStepId" : "" , "processVariantName" : "Default Onboarding Process" , "personUuid" : "330790C275C5423DAB551676247FC935" , "onbStableId" : "48E7ABAA133F4370ABBD8837C9E3CD7F" , "personIdExternal" : "4890" }
结构名称说明
这种由name/value键值对组成的字典列表,通常被称为键值对列表(List of Key-Value Pairs),也可叫做属性列表(Property List)。在SOAP XML转JSON的场景中,这类结构十分常见,因为XML的元素属性或子元素常被映射成该格式,以此保留原结构的灵活性。
Python转换实现
以下提供两种实现方式,满足不同代码风格需求:
方式1:普通循环实现
# 假设解析后的JSON数据存储在data变量中 param_list = data["param"] result_dict = {} for item in param_list: # 统一将值转为字符串,与示例输出格式匹配 key = item["name"] value = str(item["value"]) result_dict[key] = value print(result_dict)
方式2:字典推导式(更简洁)
param_list = data["param"] result_dict = {item["name"]: str(item["value"]) for item in param_list}
若无需强制将所有值转为字符串,直接替换str(item["value"])为item["value"]即可。
内容的提问来源于stack exchange,提问作者user21422281
相关产品推荐
相关产品推荐

