You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用ChainMap遍历多字典提取parameters参数值问题求解

原因说明

ChainMap的工作逻辑是将多个字典合并为单个逻辑映射,遇到重复键时仅返回第一个字典的匹配值,因此你之前的写法只能获取injury的parameters值。


方法1:直接遍历字典列表(最简实现)

不需要借助ChainMap,直接把目标字典放入列表循环取值即可:

# 汇总所有待处理的字典
dict_list = [injury, rescued, manual_system_impact]

for d in dict_list:
    # 可选:加判断避免字典无parameters键时报错
    if "parameters" in d:
        print(d["parameters"])

方法2:基于ChainMap的正确实现

如果需要保留ChainMap的用法,可遍历其maps属性(该属性存储了所有传入的原始字典):

from collections import ChainMap
chained_dict = ChainMap(injury, rescued, manual_system_impact)

for d in chained_dict.maps:
    print(d["parameters"])

方法3:Pandas实现(适合后续数据分析)

如果需要对parameters的值做进一步分析,可以转成DataFrame格式:

import pandas as pd

dict_list = [injury, rescued, manual_system_impact]
dict_names = ["injury", "rescued", "manual_system_impact"]
params_list = []

for name, d in zip(dict_names, dict_list):
    # 提取parameters列表里的分布字典,补充来源字段
    dist_data = d["parameters"][0]
    dist_data["来源字典"] = name
    params_list.append(dist_data)

# 转成DataFrame打印
df = pd.DataFrame(params_list)
print(df)

内容的提问来源于stack exchange,提问作者Karla Andrea Sandoval

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 09:54:03