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

将JSON响应转换为pandas DataFrame时出现NotImplementedError的问题排查

问题原因及解决方法

错误根源

触发NotImplementedError的核心原因是给json_normalize传入了原始JSON字符串,而json_normalize要求输入必须是Python字典或列表类型的结构化数据,无法直接处理字符串格式的内容。

修正步骤

  1. 解析JSON响应为Python对象:
    使用response.json()方法直接将API返回的JSON响应解析为Python字典/列表,这比手动调用json.loads(response.text)更简洁且能自动处理响应编码问题。
  2. 定位需要规范化的嵌套数组:
    USDA该API的响应是嵌套结构,实际的出版物数据存放在data字段对应的数组中,直接传入整个响应字典会导致规范化不完整,必须提取这个具体的数组部分。

修正后的完整代码

import requests
from pandas import json_normalize

url = "https://usda.library.cornell.edu/api/v1/publication/findAll"

headers = {
  'Authorization': 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjE0NDc1fQ.YpppSpjBnGfHv8DBEiWCrmv-KgtF3MLzniHF89hW9L8'
}

# 发送GET请求并解析JSON为Python对象
response = requests.get(url, headers=headers)
data = response.json()

# 提取嵌套的出版物数组进行规范化处理
df = json_normalize(data['data'])
print(df)

额外提示

  • requests.request("GET")可简化为requests.get(),更符合Python的简洁写法。
  • 若后续API响应结构调整,可先打印data查看具体层级,确保提取的是正确的目标数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 06:44:53