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

如何在URL带变量场景下递归调用API并将数据导出至Excel

实现步骤与完整代码

你已经完成了分页拉取成员列表的逻辑,接下来只需要补充「提取所有href→批量调用详情接口→写入CSV文件」三个步骤即可,完整代码如下:

import requests
import csv

client = requests.session()

headers = {
    "Authorization": "bearer %s" % "mine",
    "Content-Type": "application/json"
}

HOST = "https://api.application"
ENDPOINT = "/v3/groups/something/members/"

uri = "%s%s" % (HOST, ENDPOINT)

# 原有分页拉取成员列表逻辑
response = client.get(uri, headers=headers)
response_json = response.json()
paginated = [response_json]

while 'next' in response.links:
    response = client.get(response.links['next']['url'], headers=headers)
    paginated.append(response.json())

# ----------------新增逻辑开始----------------
# 1. 提取所有成员详情接口的href
all_hrefs = []
for page in paginated:
    for member in page.get("data", []):
        if member.get("href"):
            all_hrefs.append(member["href"])

# 2. 批量调用每个href获取详情,收集所有结果
all_member_details = []
for href in all_hrefs:
    try:
        detail_resp = client.get(href, headers=headers)
        detail_resp.raise_for_status() # 接口返回4xx/5xx时抛出异常
        detail_data = detail_resp.json()
        # 可根据实际返回的详情字段做筛选,此处默认全量保存
        all_member_details.append(detail_data)
    except Exception as e:
        print(f"请求接口{href}失败,错误信息:{str(e)}")
        continue

# 3. 写入CSV文件,Excel可直接打开
if all_member_details:
    # 取第一个元素的key作为CSV表头
    headers_csv = list(all_member_details[0].keys())
    with open("成员详情.csv", "w", newline="", encoding="utf-8-sig") as f:
        writer = csv.DictWriter(f, fieldnames=headers_csv)
        writer.writeheader()
        writer.writerows(all_member_details)
    print(f"已成功保存{len(all_member_details)}条数据到成员详情.csv")
# ----------------新增逻辑结束----------------

注意事项

  • 调用详情接口时添加了异常捕获,避免单个接口请求失败导致整个程序中断,失败的接口会打印日志可手动排查
  • 输出的CSV采用utf-8-sig编码,用Excel打开不会出现乱码
  • 如果你需要保存指定字段,可以在写入CSV前对detail_data做过滤,只保留需要的键值对即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:24:07