如何用Python提取JSON响应中的所有嵌套键?
提取JSON中所有键生成列表的实现方法
当然可以提取所有键并生成你需要的[a,b,c,d,e,f,g,h,i,j]这样的列表。核心思路是递归遍历JSON的每一层结构,针对JSON的两种核心类型(对象/字典、数组/列表)分别处理:
- 遇到JSON对象(对应Python中的字典)时,先提取当前层的所有键,再递归处理每个键对应的值
- 遇到JSON数组(对应Python中的列表)时,直接递归处理数组中的每一个元素
实现代码(Python)
import json def extract_all_keys(json_data): keys = [] if isinstance(json_data, dict): # 提取当前字典的所有键并加入结果 current_keys = list(json_data.keys()) keys.extend(current_keys) # 递归处理每个值 for value in json_data.values(): keys.extend(extract_all_keys(value)) elif isinstance(json_data, list): # 递归处理数组中的每个元素 for item in json_data: keys.extend(extract_all_keys(item)) # 非对象/数组类型直接返回空列表,不影响结果 return keys # 你的JSON数据 target_json = ''' { "a":1, "b":[ { "c":2, "d":{ "e":3 }, "f":{ "g":4 }, "h":[ { "i":5 }, { "j":6 } ] } ] } ''' # 解析JSON字符串为Python数据结构 parsed_data = json.loads(target_json) # 提取所有键 result_keys = extract_all_keys(parsed_data) print(result_keys) # 输出结果: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
代码说明
- 递归函数
extract_all_keys会逐层遍历整个JSON结构,不会遗漏任何嵌套层级的键 - 对于字典类型,先收集当前层的键,再深入处理每个值;对于数组类型,直接遍历内部元素继续递归
- 数字、字符串这类非结构型数据不会产生新的键,所以直接跳过处理
内容的提问来源于stack exchange,提问作者Joz
相关产品推荐
相关产品推荐

