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

如何使用pandas DataFrame解析含数组的嵌套JSON

解决JSON嵌套结构转pandas DataFrame的规整解析问题

你的JSON数据存在多层嵌套,其中transaction.client是数组结构,直接用json_normalize(response.json())只会把整个transaction作为列,无法展开数组内的明细内容,导致结果不符合预期。

修改后的代码

通过指定json_normalize的record_path参数,明确要展开的嵌套数组路径,工具会自动处理嵌套的对象(比如price):

import requests
from pandas import json_normalize

response = requests.get(url, headers=headers, data=payload, verify=True)
data = response.json()

# 指向要展开的嵌套数组路径:transaction下的client数组
df = json_normalize(data, record_path=['transaction', 'client'])

# 查看规整后的表格
print(df)

预期输出结果

执行后会得到如下规整的表格结构,嵌套的price对象会自动展开为带前缀的列:

namecategoryquantityprice.amountprice.taxprice.totalAmountTax
Paulp1150.00.0150.0

扩展:保留外层交易字段

如果transaction层还有其他需要保留的字段(比如交易ID),可以添加meta参数:
假设JSON结构为:

[{"transaction":{"id":"TXN001", "client":[{"name":"Paul","category":"p","quantity":1,"price":{"amount":150.0,"tax":0.0,"totalAmountTax":150.0}}]}}]

修改代码:

df = json_normalize(
    data,
    record_path=['transaction', 'client'],
    meta=[['transaction', 'id']]  # 保留交易ID字段
)

此时输出会新增transaction.id列,对应每条记录所属的交易ID。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 05:22:35