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

如何将API返回的嵌套JSON正确转换为目标结构的pandas DataFrame

问题原因

直接将json_data['data']传入pandas DataFrame构造函数时,pandas会默认将data下的所有一级键(list/page/size/maxPage/totalSize)识别为列名。其中list是存储业务数据的数组,数组长度为2,因此pandas会将数组内的两个字典作为list列的行值;其余分页字段都是单值,会自动广播填充到所有行,最终得到的结果就会出现分页字段重复、字典塞在单列的问题。

可行解决方案

你需要直接提取data节点下的list数组作为DataFrame的构造数据源,这个数组里的每个字典正好对应一行表格数据,修改后的代码如下:

import requests
import pandas as pd
import json

response = requests.get(url)
json_data = json.loads(response.text)
# 直接读取list数组构造DataFrame
df = pd.DataFrame(json_data['data']['list'])

注意:你提供的示例JSON中,第二条数据的地址字段存在拼写错误,键名写为adress(正确拼写为address,少一个字母d),如果实际接口返回确实存在这类键名不一致的问题,可以追加一行代码统一列名:

df = df.rename(columns={'adress': 'address'})

运行上述代码后,就能得到你期望的表格结构:

address  name shares  amount  active
0  abcdxyz  Jack    396     490    True
1  efghklm  Mary    789     890    True

如果需要保留分页相关的元信息,不需要和业务列表数据混存在同一张表里,单独提取为变量即可:

page_meta = {
    "page": json_data['data']['page'],
    "size": json_data['data']['size'],
    "maxPage": json_data['data']['maxPage'],
    "totalSize": json_data['data']['totalSize']
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 03:15:41