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

如何拆分Twitter ID列表为每批100个调用status update API获取指标

Python拆分推文ID批次实现方案

核心思路

利用列表切片将全量ID按每批100个切割,不足100的剩余ID自动归为最后一批,保证所有ID都被覆盖,使用生成器实现可以适配超大ID量的场景,不会占用过多内存。

1. 通用批次拆分函数

def split_into_batches(id_list, batch_size=100):
    # 按指定步长切割列表,迭代返回每一批次
    for i in range(0, len(id_list), batch_size):
        yield id_list[i:i+batch_size]

如果你的ID存储为单个分隔符拼接的字符串,先转为ID列表:

# 示例为逗号分隔的ID字符串,可根据实际分隔符调整split参数
raw_id_str = "1452367890123456789,1452367890123456790,1452367890123456791"
all_tweet_ids = raw_id_str.split(",")

2. 对接API的完整调用示例

import time
# 此处替换为你自己的API鉴权初始化逻辑,省略鉴权代码
BATCH_SIZE = 100
# 遍历所有批次发起请求
for batch_index, batch_ids in enumerate(split_into_batches(all_tweet_ids, BATCH_SIZE)):
    print(f"处理第{batch_index + 1}批,ID数量:{len(batch_ids)}")
    try:
        # 调用查询指标的API,传入当前批次的ID列表
        api_response = your_twitter_api_client.get_tweet_public_metrics(ids=batch_ids)
        # 自定义逻辑处理返回的指标数据,比如写入数据库/本地文件
        save_metrics_data(api_response)
        # 根据API速率配额调整延时,避免触发限流
        time.sleep(1)
    except Exception as e:
        print(f"第{batch_index + 1}批请求失败,错误:{str(e)}")
        # 可自行添加重试逻辑,比如同一批次最多重试3次

注意事项

  • 确保传入的ID为字符串格式,避免大整数溢出导致ID校验不通过
  • 最后一批ID数量不足100时函数会自动保留所有剩余ID,无需额外处理
  • 可根据自身API的速率配额调整每批请求后的延时时间

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:24:02