如何在多层嵌套字典中获取med_dict的endDate最大值及指定键数据
嵌套字典操作:提取指定键数据与求endDate最大值
一、提取指定键'med_dict'的数据
要从多层嵌套字典中获取所有med_dict对应的数据,通过逐层遍历即可实现:
方法1:提取所有med_dict对象
# 遍历外层字典的所有值,取出每个值中的'med_dict' all_med_dicts = [entry['med_dict'] for entry in Data.values()]
执行后all_med_dicts会得到包含两个字典的列表:[{0: {'endDate': '732', 'endTime': '89'}}, {0: {'endDate': '245', 'endTime': '222'}}]
方法2:提取med_dict内的具体明细
如果需要直接拿到med_dict里的实际数据(比如每个0对应的字典),可以再深入一层:
# 取出每个med_dict中0对应的明细字典 med_details = [entry['med_dict'][0] for entry in Data.values()]
结果为:[{'endDate': '732', 'endTime': '89'}, {'endDate': '245', 'endTime': '222'}]
通用场景(med_dict键不固定)
如果med_dict内的键不是固定的0,可以遍历其所有值:
# 提取med_dict下所有层级的数据 all_med_details = [med for entry in Data.values() for med in entry['med_dict'].values()]
二、获取med_dict['endDate']的最大值
注意endDate存储的是字符串类型,需要先转换为整数再进行数值比较:
基础实现(med_dict键固定为0)
# 收集所有endDate并转换为整数 end_date_values = [int(entry['med_dict'][0]['endDate']) for entry in Data.values()] # 计算最大值 max_end_date = max(end_date_values) print(max_end_date) # 输出:732
通用实现(med_dict键不固定)
如果med_dict内有多个键,用嵌套遍历收集所有endDate:
end_date_values = [int(med['endDate']) for entry in Data.values() for med in entry['med_dict'].values()] max_end_date = max(end_date_values)
核心思路
处理多层嵌套字典的关键是逐层拆解:从最外层字典开始,通过键访问下一层数据,结合列表推导式或循环遍历,收集目标数据后再进行后续操作(比如类型转换、求最大值)。
内容的提问来源于stack exchange,提问作者Trishna
相关产品推荐
相关产品推荐

