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

如何将含不同长度数组的JSON对象转为DataFrame?解决长度不匹配报错

解决"All arrays must be of the same length"错误的方案

错误原因

你调用的API返回的JSON是嵌套结构的字典,顶层不同字段对应的数据长度不一致:比如indicator是单个元数据对象,data却是包含数百条记录的数组。直接用pd.DataFrame(resp.json())会让pandas尝试把这些长度不同的序列拼成表格,因此触发长度不匹配的错误。

解决步骤

步骤1:提取核心数据数组

API返回的实际业务数据都存在data字段里,先单独提取这个数组:

import pandas as pd
import requests

resp = requests.get("https://unstats.un.org/SDGAPI/v1/sdg/Indicator/Data?indicator=7.2.1")
# 提取包含所有数据条目的数组
raw_data = resp.json()['data']

步骤2:转换为DataFrame

用提取出的raw_data直接创建DataFrame:

df = pd.DataFrame(raw_data)

可选:扁平化嵌套JSON

如果数据里存在嵌套对象(比如每个条目里的country、indicator字段),可以用json_normalize把嵌套结构展开成扁平列:

from pandas import json_normalize

df = json_normalize(raw_data)

这样就能正确生成DataFrame,不会再触发长度不匹配的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 02:21:16