startdate = datetime.date(2018,1,1)
expirydate = datetime.date(2018,1,4)
data = dict()
for x in range(0,3):
for y in range(1,8):
data [y] = get_history(symbol="BANKNIFTY",
start= startdate,
end= startdate,
index=True,
option_type='CE',
strike_price= 27000,
expiry_date=expirydate)
startdate += datetime.timedelta(days=1)
expirydate += datetime.timedelta(days=7)
循环运行良好,但只给我最后一组值,即当 x = 3 时。其余所有先前的值都被覆盖。
您必须将不同的 y
值与之前的 x
值循环中的值区分开来。例如,您可以设置data[(x, y)]
而不是data[y]
。为了避免添加空值,只需添加条件来检查值,然后再将其设置到字典中:
for x in range(0,3):
for y in range(1,8):
val = get_history(symbol="BANKNIFTY",
start= startdate,
end= startdate,
index=True,
option_type='CE',
strike_price= 27000,
expiry_date=expirydate)
if val:
data[(x, y)] = val
...
我是一名优秀的程序员,十分优秀!