Python根据日期范围每天保存JSON响应
例如,我们的日期范围为START=2019-01-01,END=2019-03-01 然后我们有两个功能: 1执行某些操作并将响应保存到文件的过程:Python根据日期范围每天保存JSON响应,python,json,date,Python,Json,Date,例如,我们的日期范围为START=2019-01-01,END=2019-03-01 然后我们有两个功能: 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 : r
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,它将采用主日期范围,并将通过每天处理连续运行
例如。
如果日期范围为开始=2019-01-01,结束=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
直到-开始=2019-02-28,结束=2019-03-01
在处理过程中,数据将附加到同一个文件中
编辑1:这是一种解决方法,可以在时间范围内每天提取数据,而不是在整个日期范围内求和我在此假设您的代码包含一个存在两个变量的位置: 开始=2019-01-01,结束=2019-03-01 您只需保存它们并编写一个循环,为每次迭代设置它们并调用sm_数据:
我不清楚你在问什么。是否要针对某个日期范围运行脚本,并在循环中的1天范围内调用该函数?如果是这样的话,为什么不直接发送SATRT并使用argparse或类似方法从main结束,然后在几天内循环?@doctorlove抱歉我的错误,完全理解你。。。如果我通过了我所解释的日期范围,我将每天收到结果,如果我输入完整的日期范围,将收到为期3个月的结果,此API不支持维度。。所以这就像是一个解决办法。如果你有任何选择如何使它每天,我会很高兴与任何解决方案…什么是开始和结束?字符串、datetime.date对象、其他?@SergeBallesta字符串或可用于此-datetime.date.today.strftime“%Y-%m-%d”
# 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)