Python DataFrame读取API JSON时如何移除外层数组实现正常解析
解决方法
你原先直接调用pd.read_json会把完整外层JSON对象直接解析,外层键会被识别为列名,对应的数组会作为整列值存储,无法得到你需要的结构化表格。调整逻辑先请求完整JSON、提取内层数组再转DataFrame即可,修改后代码如下:
import requests import pandas as pd # 请求API获取完整JSON响应 api_response = requests.get("my API url") # 提取外层键对应的内层数组,此处"outer array"替换为你API返回的真实外层键名 inner_data = api_response.json()["outer array"] # 将内层数组转换为DataFrame df = pd.DataFrame(inner_data) # 导出为Excel,index=False可避免导出额外的行序号列 df.to_excel("myFileLocation.xlsx", index=False)
注意事项
- 若你不确定API返回的外层键名,可在解析JSON后加一行
print(api_response.json().keys())打印所有外层键确认后再替换 - 若API需要鉴权,可在
requests.get中补充headers、params等参数完成校验,示例:requests.get("my API url", headers={"Authorization": "Bearer 你的鉴权令牌"})
内容的提问来源于stack exchange,提问作者Bob
相关产品推荐
相关产品推荐

