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

如何在Python嵌套字典中查找唯一嵌套键'achievements'的值

获取嵌套字典中唯一键对应值的方法

可以写一个递归遍历的函数,针对性处理字典和列表结构,找到目标键就返回对应值:

def find_achievements(data):
    # 如果当前是字典,先检查是否包含目标键
    if isinstance(data, dict):
        if 'achievements' in data:
            return data['achievements']
        # 遍历字典所有值,递归查找
        for value in data.values():
            result = find_achievements(value)
            if result is not None:
                return result
    # 如果当前是列表,遍历每个元素递归查找
    elif isinstance(data, list):
        for item in data:
            result = find_achievements(item)
            if result is not None:
                return result
    # 其他类型(字符串、数字等)直接返回None
    return None

# 用法示例
nested_data = {
    "user": {
        "profile": [
            {"name": "Alice", "achievements": ["level_up", "complete_task"]},
            {"age": 28}
        ]
    }
}

achievements = find_achievements(nested_data)
print(achievements)  # 输出: ['level_up', 'complete_task']

逻辑说明

  • 函数会先判断当前数据类型:
    • 若是字典,先检查是否存在achievements键,存在则直接返回对应值;不存在就遍历所有值,递归调用函数继续查找。
    • 若是列表,遍历列表中的每一个元素,递归调用函数查找。
    • 遇到字符串、数字等非容器类型,直接返回None,表示当前路径没找到目标。
  • 因为已知achievements键唯一,所以一旦找到就立即返回,无需继续遍历剩余结构,效率更高。

内容的提问来源于stack exchange,提问作者Inertial Ignorance

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 05:45:23