вложенный в циклический словарь хранит значения python nsepy - PullRequest
0 голосов
/ 22 февраля 2019
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. Остальные все предыдущие значения переопределяются.

1 Ответ

0 голосов
/ 23 февраля 2019

Вам нужно будет отличить различные значения 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
        ...
...