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

Python Requests调用API分页仅保存最后一页数据的问题解决

解决分页API调用中ID列表仅保留最后一页的问题

问题出在你循环时对列表的操作方式——每次都直接给列表变量赋值,而不是追加新内容,导致之前分页的ID被覆盖,最终只剩最后一页的数据。

错误代码示例(模拟你的问题)

import requests

# 错误:每次循环覆盖列表内容
id = []
for page in range(3):
    resp = requests.get(f"https://your-api-url.com?page={page}")
    data = resp.json()
    id = data["ids"]  # 这里是赋值,直接替换了整个列表

print(id)  # 仅输出最后一页的ID

修正后的代码

import requests

# 初始化空列表,用all_ids避免和Python内置函数id()冲突
all_ids = []
for page in range(3):
    resp = requests.get(f"https://your-api-url.com?page={page}")
    data = resp.json()
    current_ids = data["ids"]
    all_ids.extend(current_ids)  # 把当前页的ID逐个追加到总列表
    # 等价写法:all_ids += current_ids

print(all_ids)  # 输出合并后的所有分页ID

关键说明

  1. 用extend()而非赋值:extend()会把当前页的ID列表中的每个元素添加到总列表末尾,而赋值操作会直接替换整个列表,丢失之前的数据。
  2. 避免使用内置函数名当变量:id是Python内置函数(用于获取对象内存地址),改用all_ids这类自定义名称可以避免潜在冲突。

效果示例

假设各页返回的ID分别为:

  • 第0页:[101, 102, 103]
  • 第1页:[104, 105]
  • 第2页:[106, 107, 108]

修正后输出的all_ids为:[101, 102, 103, 104, 105, 106, 107, 108],符合合并所有分页ID的预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 15:05:43