Попробуйте кроме оператора в исполнении Python - PullRequest
0 голосов
/ 06 ноября 2018

Предположим, я звоню на веб-интерфейс API, который требует превышения 4 секунд после превышения лимита. Используя цикл try иначе и пакет времени, я могу приостановить программу, если возникнет исключение. Если я работаю с индексами панд в итеративном цикле, поймет ли программа, где она остановилась? Пример:

i = 0
while i < len(df):
    try:
        df['A'] = df[i:i + 10].apply(lambda x: api_call(x['B'])[0] + 10)
    except IndexError:
        time.sleep(5)
i += 10

Если на df возбуждается исключение [12], то после того, как программа остановилась на 5 секунд, как мне заставить программу выполнить поиск по индексу, вызвавшему исключение (сигнализирующему, что программа превысила количество разрешенных вызовов? )

1 Ответ

0 голосов
/ 06 ноября 2018

Я думаю, вам просто нужен блок else для вашего try...except кода.

i = 0
while i < len(df):
    try:
        df['A'] = df[i:i + 10].apply(lambda x: api_call(x['B'])[0] + 10)
    except IndexError:
        time.sleep(5)
    else:
        i += 10

Таким образом, i += 10 запускается, только если блок try не вызывает исключение. В противном случае цикл повторяется с тем же значением i.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...