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

Python遍历嵌套JSON并提取指定键值到列表的实现方法

提取JSON嵌套结构指定键值的实现方法

要全量遍历任意深度的嵌套JSON(对应Python加载后的字典/列表结构)提取指定键的所有匹配值,最稳妥的方式是写递归遍历逻辑,不需要硬编码索引路径,适配各种嵌套场景。

通用递归实现(适配任意嵌套结构)

这个方法会自动识别遍历过程中遇到的字典、列表类型,逐层深入查找目标键,遇到匹配值就存入结果列表:

def extract_values(obj, target_key):
    values = []
    # 处理字典类型
    if isinstance(obj, dict):
        for k, v in obj.items():
            if k == target_key:
                values.append(v)
            # 递归遍历当前值的嵌套结构
            values.extend(extract_values(v, target_key))
    # 处理列表类型
    elif isinstance(obj, list):
        for item in obj:
            values.extend(extract_values(item, target_key))
    # 字符串、数字等基础类型直接终止遍历
    return values

拿给出的示例数据测试:

A = {"Tags": [
    {"Item": {"Test": "mouse"}},
    {"Item": {"Test": "dog"}},
    {"Item": {"Test": "cat"}},
    {"Item": {"Test": "dog"}}
]}

result = extract_values(A, "Test")
print(result)

运行输出:

['mouse', 'dog', 'cat', 'dog']

固定结构的简洁写法

如果处理的JSON结构和示例完全一致,不会出现层级变动、字段缺失的情况,也可以直接用列表推导式快速提取:

result = [tag["Item"]["Test"] for tag in A["Tags"]]

这个写法执行效率更高,但容错性差,只要某条数据缺少Item或者Test字段就会抛出KeyError。

读取本地JSON文件的用法

如果数据存在本地JSON文件里,先用标准库json加载成Python对象再调用提取函数即可:

import json

with open("你的数据文件.json", "r", encoding="utf-8") as f:
    json_data = json.load(f)

result = extract_values(json_data, "Test")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 08:36:27