Замедленные события: IndexError: список индексов вне диапазона - PullRequest
0 голосов
/ 21 апреля 2019

Я пытаюсь прочитать события из slack и вернуть ответ для соответствующего события.

Проблема в том, что когда я сопоставляю событие и возвращаю его в slack, это выдает мне ошибку:

IndexError: list index out of range

Фрагмент кода:

def readSlack():
regVal = re.compile(r"(CHG\w+)")
while True:
    events = slack_client.rtm_read()
    for event in events:
        if (
                'channel' in event and
                'text' in event and
                event.get('type') == 'message'
        ):
            channel = event['channel']
            text = event['text']
            res = regVal.findall(text)  ### output of res, res = ['CHG1234567']
            change = res[0]
            incomingSlack(change, channel)
    time.sleep(1)

, и мое соединение с Slack разрывается.Когда я пытаюсь обработать исключение, добавив

res = regVal.findall(text)  ### output of res, res = ['CHG1234567']
            try:
                change = res[0]
            except IndexError:
                print("Index Error ")
            incomingSlack(change, channel)

Это будет выполняться в бесконечном цикле для того же события и спамить мой слабый канал.

Что я здесь не так делаю?

1 Ответ

1 голос
/ 21 апреля 2019

Как насчет:

res = regVal.findall(text)  ### output of res, res = ['CHG1234567']
if res:
    change = res[0]
    incomingSlack(change, channel)
...