如何获取嵌套字典最大值的键?解决'str'无items属性报错
问题分析与解决
报错原因
报错'str' object has no attribute 'items'的核心问题:代码中的fruits变量不是预期的字典类型,而是字符串。通常是接口接收的参数是JSON格式字符串,未做解析就直接使用导致的。
修正方案
先将字符串格式的输入转为Python字典,再优化逻辑获取最大值对应的键值对:
import json # 若接口传入的是字符串格式字典,先解析;如果fruits本身已是字典可跳过此步 fruits_str = '{"Apple": {"0": 0}, "Mango": {"0": 1}}' fruits = json.loads(fruits_str) # 一次遍历获取最大值对应的键值对,避免重复遍历 max_pair = max(fruits.items(), key=lambda x: float(x[1]['0'])) result = {max_pair[0]: float(max_pair[1]['0'])} print(result) # 输出: {'Mango': 1.0}
代码说明
json.loads():将JSON字符串解析为Python字典,解决类型不匹配的根本问题max(fruits.items(), key=...):直接遍历字典键值对,通过lambda指定以嵌套值转成float后的结果作为排序依据,一次遍历即可拿到目标数据- 最终结果完全匹配预期的格式与数据类型
内容的提问来源于stack exchange,提问作者codette
相关产品推荐
相关产品推荐

