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

修复load_query_result_to_df函数转API查询结果为DataFrame的报错

问题原因
  • 你调用的开放数据API返回的JSON是标准搜索结果结构,实际的巧克力棒业务数据没有存放在JSON根层级,而是嵌套在records数组下,单条数据的具体字段又存放在对应record的fields属性中
  • 原写法直接把整个响应JSON转为DataFrame,生成的DF结构完全不符合预期,后续访问cocoa_percent字段时会触发KeyError,结果数量校验逻辑也会因为结构错误判定为结果数量不符合要求
修复后的代码
import pandas as pd

def load_query_result_to_df(api_query_res):
    # 获取响应JSON内容
    res_json = api_query_res.json()
    # 提取所有记录的业务字段作为数据源
    data_list = [record["fields"] for record in res_json.get("records", [])]
    # 生成符合要求的DataFrame
    df = pd.DataFrame(data_list)
    return df
可选优化

如果需要保留记录ID、采集时间等元信息,可以直接用扁平化方法处理全量records字段,不需要手动提取fields:

def load_query_result_to_df(api_query_res):
    res_json = api_query_res.json()
    df = pd.json_normalize(res_json.get("records", []))
    return df

也可以新增响应状态校验,避免接口请求失败时触发JSON解析错误:先判断api_query_res.status_code == 200再执行后续解析逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:15:01