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
相关产品推荐
相关产品推荐

