@adrenalinruslan

Что за ошибка такая tuple index out of range?

Иногда выскакивает такая ошибка, в чем проблема ? Вообще не понимаю из за чего она появляется. Не всегда появляется

def db_fetchall(sql, params = {}, first_entry = False):
    #
    _data = []
    
    #
    try:
        _cursor.execute(sql, params)
        _data = _cursor.fetchall() if(first_entry != True) else _cursor.fetchall()[0]

    except pymysql.Error as e:
        print(e)

    #
    return _data

def db_get_account_by_chat_id(a_chat):
    #
    params = {
        "a_chat": a_chat 
    }

    #
    return db_fetchall("SELECT * FROM `accounts` WHERE `a_chat` = %(a_chat)s ORDER BY `id` DESC LIMIT 1", params, True)


Сами ошибки:

File "app.py", line 87, in db_get_account_by_chat_id
    return db_fetchall("SELECT * FROM `accounts` WHERE `a_chat` = %(a_chat)s ORDER BY `id` DESC LIMIT 1", params, True)

  File "app.py", line 72, in db_fetchall
    _data = _cursor.fetchall() if(first_entry != True) else _cursor.fetchall()[0]

IndexError: tuple index out of range
  • Вопрос задан
  • 14845 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Ошибка обращения к несуществующему элементу кортежа. Судя по всему, _cursor.fetchall() иногда возвращает пустой кортеж, в котором нет элемента по индексу 0.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы