由于我的代理的一些限制,要获取日内历史数据,单个rest调用中允许的最大日期范围是7天,任何违反此范围的请求都会返回一个错误。因此,我需要打破不同调用之间的时间间隔,以获取超出此允许日期范围的数据。到目前为止,我已经手动拆分它以获取数据并将其附加到一个数据帧中
def get_historical_data(scrip):
data1 = historicData(scrip, "01/07/2019", "07/07/2019")
data2 = historicData(scrip, "08/07/2019", "14/07/2019")
data3 = historicData(scrip, "15/07/2019", "21/07/2019")
data4 = historicData(scrip, "22/07/2019", "28/07/2019")
data5 = historicData(scrip, "28/07/2019", "31/07/2019")
data6 = historicData(scrip, "01/08/2019", "07/08/2019")
data7 = historicData(scrip, "08/08/2019", "14/08/2019")
data8 = historicData(scrip, "15/08/2019", "21/08/2019")
data9 = historicData(scrip, "22/08/2019", "28/08/2019")
data10 = historicData(scrip, "29/08/2019", "04/09/2019")
data11 = historicData(scrip, "05/09/2019", "11/09/2019")
data12 = historicData(scrip, "12/09/2019", "17/09/2019")
data13 = historicData(scrip, "18/09/2019", "18/09/2019")
data1 = data1.append(data2)
data1 = data1.append(data3)
data1 = data1.append(data4)
data1 = data1.append(data5)
data1 = data1.append(data6)
data1 = data1.append(data7)
data1 = data1.append(data9)
data1 = data1.append(data10)
data1 = data1.append(data11)
data1 = data1.append(data12)
data1 = data1.append(data13)
data1 = data1.reset_index(drop=True)
return data1
一个很好的方法是将日期范围拆分为一周的间隔,而不必手动执行,并在追加后返回完整的数据。如下所示:
def get_historical_data(scrip, start_date, end_date):
#Some logic to split the start_date and end_date for one-week interval and fetch the data.
#After fetching the data, append into one df.
#return appended_data
您可以开始创建一个带有第一个日期的datetime,然后循环向其中添加timedelta(days=7),直到到达
end_date
使用
datetime
,可以使用datetime.timedelta()
进行偏移。以下函数应适用于您的目的相关问题 更多 >
编程相关推荐