python - Python 根据日期范围每天保存 JSON 响应
问题描述
例如,我们有日期范围(START=2019-01-01,END=2019-03-01)
然后我们有2个功能:
1)做某事并保存对文件的响应的过程:
def job_function():
# Date are part of parameters like this:
dates.gt({}).lt({})'.format(START,END),
# Here should be the code which ends up with :
responseMain = requests.get(urlMain, params=params, headers=headers).json()
with open(FILE_NAME, "a+") as outfile:
outfile.write(json.dumps(responseMain))
2)主要的:
if __name__ == '__main__':
for (something here? or something inside the function 1??)
sm_data(START,END)
我需要修改功能 1,它将采用主要日期范围并通过每天处理连续运行。
EG IF 日期范围为 (START=2019-01-01, END=2019-03-01)
功能 1 将在此日期持续运行:
- 开始=2019-01-01,结束=2019-01-02
- 开始=2019-01-02,结束=2019-01-03
- 开始=2019-01-03,结束=2019-01-04
- 开始=2019-01-04,结束=2019-01-05
- 开始=2019-01-05,结束=2019-01-06
- 开始=2019-01-06,结束=2019-01-07
- 开始=2019-01-07,结束=2019-01-08
- 开始=2019-01-08,结束=2019-01-09
直到 - START=2019-02-28,END=2019-03-01
在处理时,数据将附加到同一个文件
编辑 1:这是在时间范围内每天提取数据而不是按完整日期范围求和的解决方法
解决方案
我在这里假设您的代码包含一个存在两个变量的位置:START=2019-01-01 和 END=2019-03-01。
您只需保存它们并编写一个循环,为每次迭代设置它们并调用sm_data
:
# ok START and END exist here
# convert them to datetime.date
fmt = '%Y-%m-%d'
cur = datetime.datetime.strptime(START, fmt).date()
end = datetime.datetime.strptime(END, fmt).date()
# prepare the loop:
delta = datetime.timedelta(days=1)
while cur < end:
START = cur.strftime(fmt) # current date
cur += delta # next day
END = cur.strftime(fmt)
sm_data(START, END)
推荐阅读
- python-3.x - 在“导入的模块 Y”中找不到引用“X”
- google-sheets - 如果其公式在 Google 表格中失败,则将单元格设为空而不是零
- node.js - 尝试读取输入时 gpio.read null false
- node.js - 使用 nodeJS 应用程序调用我的 NestJs 微服务
- javascript - 选择库存商品
- computational-geometry - 在运行凸包算法之前进行修剪
- reactjs -
尽管函数调用不起作用 - html - 在 flex 容器的整个宽度上对齐内部 Flexbox 项目
- node.js - 如何通过 Inputs() 将对象传递给子组件,但在父组件中更改时从不更新输入
- r - 在 r 中使用 grepl 函数查找 TRUE 和 FALSE 总和