我需要在 API 中查询数月期间的数据。但是,API 阻塞的时间间隔超过 3 天。
所以我想创建一个生成器函数,将我的多月日期范围分成 3 天段,我可以在重复调用我的函数命中 API 时使用这些段:当我将开始日期和结束日期传递给它时,它给了我:
- 第一次给我开始日期,开始日期+3天
- 下次给我开始日期 + 3 天,开始日期 + 6 天
- 此后每次都以 3 天为增量前进
- 直到它到达结束日期,如果我还有 1 或 2 天的数据要抓取,它会给我剩余的天数来达到结束日期
- 停止
到目前为止,这是我的代码。它会第一次工作,但我不确定下次调用该函数时如何让开始日期增加 3 天。而且我也不确定在到达最终结束日期之前我是否还有 1 或 2 天的时间来将我的until
变量设置为最终结束日期——我想现在它只是说“还有不到 3 天的时间最后的日期,所以让我们退出”:
3_day_segmenter(start, end):
start_date = datetime.strptime(start, '%Y-%m-%d')
end_date = datetime.strptime(end, '%Y-%m-%d')
since = start_date
for date in range(int ((end_date - start_date).days)):
until = start_date + datetime.timedelta(days=3)
yield since, until