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

Python调用API循环日期范围时如何按日同步递增起止日期

问题描述
  • 需求说明:开发时需要向API传入start_date和end_date参数,在指定日期范围内循环调用接口拉取数据。
  • 示例场景:指定初始范围为start_date = '2022-05-23'、end_date ='2022-05-26'时,循环调用API要以1天为步长递进,每次传入的起止日期组合如下:
start_date = '2022-05-23' and end_date ='2022-05-24'
start_date = '2022-05-24' and end_date ='2022-05-25'
start_date = '2022-05-25' and end_date ='2022-05-26'     
start_date = '2022-05-26' and end_date ='2022-05-27'
start_date = '2022-05-27' and end_date ='2022-05-28'
start_date = '2022-05-28' and end_date ='2022-05-29'
  • 现存问题:现有初步代码已经实现start_date按日递增,但无法实现end_date始终取当前start_date加1天的逻辑,当前代码如下:
from datetime import datetime, timedelta

start_date = "2022-05-24"
end_date = "2022-05-29"
start_dt = datetime.strptime(start_date, "%Y-%m-%d")
end_dt = datetime.strptime(end_date, "%Y-%m-%d")
delta = timedelta(days=1)
while start_dt <= end_dt:
    print(f"start_dt:{start_dt}")
    print(f"end_dt:{end_dt}")
    start_dt += delta
解决方案

原代码逻辑的核心问题是混淆了两个概念:初始化的end_dt是整个循环的终止边界,不是每次调用API要传入的结束日期。每次请求的end_date只需要在循环内部基于当前轮次的start_dt动态加1天计算即可。
修正后的可直接运行代码:

from datetime import datetime, timedelta

start_date = "2022-05-24"
end_date = "2022-05-29"
start_dt = datetime.strptime(start_date, "%Y-%m-%d")
end_dt = datetime.strptime(end_date, "%Y-%m-%d")
delta = timedelta(days=1)

while start_dt <= end_dt:
    # 动态计算当前轮次传给API的结束日期
    current_end_dt = start_dt + delta
    # 格式化为字符串后即可传入API
    api_start = start_dt.strftime("%Y-%m-%d")
    api_end = current_end_dt.strftime("%Y-%m-%d")
    print(f"start_date = '{api_start}' and end_date ='{api_end}'")
    # 日期递进
    start_dt += delta

运行输出结果完全匹配步长要求:

start_date = '2022-05-24' and end_date ='2022-05-25'
start_date = '2022-05-25' and end_date ='2022-05-26'
start_date = '2022-05-26' and end_date ='2022-05-27'
start_date = '2022-05-27' and end_date ='2022-05-28'
start_date = '2022-05-28' and end_date ='2022-05-29'
start_date = '2022-05-29' and end_date ='2022-05-30'

如果需要对齐示例中从2022-05-23起始的范围,直接把初始start_date变量值修改为"2022-05-23"即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 06:09:29