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

遍历DataFrame参数发起API GET请求并将JSON结果存入DataFrame

遍历Pandas DataFrame生成API请求并合并返回结果

以下是实现需求的完整代码方案,包含参数替换、API请求、结果合并的全流程:

步骤1:导入依赖库

import pandas as pd
import requests

步骤2:配置基础参数与请求模板

替换占位符为你的实际API配置:

HOST = "https://your-real-api-host.com"
VERSION_CLIENT = "v1"
CLIENT_TOKEN = "your-valid-client-token"

# 修正请求模板格式(GET请求参数需用?开头、&分隔)
request_template = f"{HOST}/client/{VERSION_CLIENT}/?access_token={CLIENT_TOKEN}&paramA={{paramA}}&paramB={{paramB}}&paramC={{paramC}}"

步骤3:构造原始DataFrame

# 你的原始参数数据
raw_data = {
    "paramA": ["xyz", "xyy"],
    "paramB": [123, 122],
    "paramC": ["abc", "abb"]
}
df = pd.DataFrame(raw_data)

步骤4:定义API请求处理函数

加入异常捕获,避免单个请求失败中断整个流程:

def get_api_response(row):
    # 用当前行参数替换模板占位符
    request_url = request_template.format(**row.to_dict())
    try:
        response = requests.get(request_url)
        response.raise_for_status()  # 触发HTTP错误(如404、500)
        return response.json()
    except Exception as e:
        # 请求失败时记录错误信息
        return {"request_error": str(e)}

步骤5:执行请求并合并结果

# 对每行数据发送API请求,生成响应结果列
df["api_response"] = df.apply(get_api_response, axis=1)

# 可选:将JSON响应展开为单独列(方便后续分析)
df = pd.concat([df, df["api_response"].apply(pd.Series)], axis=1)

# 可选:删除临时的api_response列(不需要保留原始JSON时)
# df.drop("api_response", axis=1, inplace=True)

关键说明

  • 用**row.to_dict()将行数据转为键值对,直接填充请求模板,避免手动拼接参数出错
  • 异常处理确保单条请求失败时,整个流程不会终止,错误信息会被记录到结果中
  • 展开JSON响应为列后,可直接对返回字段进行筛选、分析操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 21:22:36