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

如何遍历DataFrame每行将id列值作为入参循环发起API请求

逐行提取DataFrame id值循环发起API请求实现

你可以直接遍历DataFrame行数据,逐次取出id值替换请求参数后发起请求,下面是修正后的可运行代码,同时修复了你原有示例代码里的语法错误、字符串转义容易出问题的隐患:

import requests
import json
import time

# 接口基础配置
url = "https://api-url.com/api/v1/endpoint"
authtoken = "替换为你实际的鉴权token值"
headers = {
    "authorization": authtoken,
    "Content-Type": "application/json"
}

# df为你已有的包含id、someValue列的DataFrame
for _, row in df.iterrows():
    # 提取当前行的id值,转为字符串匹配接口参数格式
    current_id = str(row["id"])
    # 动态构造请求体,用字典序列化JSON避免手动写转义符出错
    payload = {
        "query": f"""{{
  report(id:"{current_id}") {{
    reportFieldA {{
      name
      dimension
    }}
  }}
}}""",
        "variables": {}
    }
    # 发起POST请求
    resp = requests.post(url, headers=headers, data=json.dumps(payload))
    # 打印当前id对应的返回结果,可根据需要改为存储结果到列表/文件
    print(f"id: {current_id} 返回结果:{resp.text}")
    # 按需配置请求间隔,避免触发接口限流,数值可根据接口规则调整
    time.sleep(1)

关键说明

  • 遍历使用pandas内置的iterrows()方法,逐行返回行索引和行数据,行索引用不到所以用_占位接收
  • 不推荐手动写带大量转义符的payload字符串,先构造Python字典再用json.dumps()转成JSON字符串的方式容错率更高,不容易出现引号、转义符写错的问题
  • 如果你的id列本身就是字符串格式,可以去掉包裹id的str()转换
  • 如果接口没有限流要求,可以删掉time.sleep(1)这行,加快请求速度
  • 需要留存所有请求结果的话,可以在循环外定义一个空结果列表,每次请求拿到响应后把结果追加到列表中,循环结束后统一处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 23:51:21