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

Python读取嵌套结构JSON文件并提取指定字段生成Pandas数据表的方法

多层嵌套JSON提取指定字段生成表格的修正方案

原有代码的核心问题定位

  • JSON读取API误用:json.loads()的输入是JSON格式字符串,直接读取打开的文件对象需要使用json.load(),原代码传入文件句柄会直接触发类型报错
  • 嵌套路径定位偏差:示例JSON里的单条业务记录存放在response -> docs的路径下,原代码直接遍历data['response'],实际遍历的是该字典的顶层键(results/start/docs),完全无法触达具体的记录内容
  • 字段取值规则不匹配:Python字典不支持dct['name', 'age']这种一次取多键的写法,且示例中name、age字段的值本身是单元素列表,需要提取列表内的实际值才能生成规整的二维表格结构

适配多层嵌套的通用处理逻辑

不管外层嵌套多少类似responseHeader这类元数据结构,只要顺着JSON的键值层级定位到存放具体业务记录的列表节点,后续的字段提取逻辑和普通扁平化JSON完全一致,不需要额外的特殊处理。

完整可运行的修正代码

import json
import pandas as pd

# 使用上下文管理器自动管理文件句柄,避免文件泄漏
with open("myfile.json", "r", encoding="utf-8") as f:
    # 直接读取文件对象解析JSON结构
    full_content = json.load(f)

# 沿嵌套路径定位到实际的记录列表,跳过无关的元数据层
docs_list = full_content["response"]["docs"]

# 逐记录提取目标字段,将单元素列表中的实际值取出
processed_records = [
    {
        "name": record["name"][0],
        "age": record["age"][0]
    }
    for record in docs_list
]

# 生成规整的表格结构
result_df = pd.DataFrame(processed_records)
print(result_df)

运行输出效果

执行上述代码后会直接输出符合预期的表格:

name age
0  Peter  23
1  Harry  30

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 02:15:05