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

如何用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']

代码说明

  1. 递归函数extract_all_keys会逐层遍历整个JSON结构,不会遗漏任何嵌套层级的键
  2. 对于字典类型,先收集当前层的键,再深入处理每个值;对于数组类型,直接遍历内部元素继续递归
  3. 数字、字符串这类非结构型数据不会产生新的键,所以直接跳过处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 23:54:31