Телеграм бот, ошибка TypeError: 'NoneType' object is not subscriptable
бот спокойно работает в личке, но как только в группе пытаюсь пообщаться выдает следующее:
if baninf[0] == 0:
TypeError: 'NoneType' object is not subscriptable
Сам код:
@bot.message_handler(func=lambda message: message.text.lower() == 'баланс' or message.text == '? Баланс')
def balance(message):
baninf = cursor.execute(f"SELECT ban FROM users WHERE id = {message.from_user.id}").fetchone()
if baninf[0] == 0:
balanceu = cursor.execute(f'SELECT money FROM users WHERE id = {message.from_user.id}').fetchone()
userbank = cursor.execute(f'SELECT bank FROM users WHERE id = {message.from_user.id}').fetchone()
usernick = cursor.execute(f'SELECT nick FROM users WHERE id = {message.from_user.id}').fetchone()
bot.send_message(message.from_user.id, f"{usernick[0]} ? Ваш баланс: {balanceu[0]}$ \n ? В банке: {userbank[0]}$")
Ответы (1 шт):
Автор решения: Aleksandr Fetisov
→ Ссылка
Такая ошибка из-за обращения к атрибуту который равен None
В коде ошибка возникает в строке if baninf[0] == 0:. Вероятно, запрос cursor.execute(f"SELECT ban FROM users WHERE id = {message.from_user.id}").fetchone() не возвращает никаких результатов и вороятно всего равен None, а вы пытаетесь обратиться к нулевому индексу baninf[0], что вызывает ошибку.
@bot.message_handler(func=lambda message: message.text.lower() == 'баланс' or message.text == '? Баланс')
def balance(message):
baninf = cursor.execute(f"SELECT ban FROM users WHERE id = {message.from_user.id}").fetchone()
if baninf is not None and baninf[0] == 0:
balanceu = cursor.execute(f'SELECT money FROM users WHERE id = {message.from_user.id}').fetchone()
userbank = cursor.execute(f'SELECT bank FROM users WHERE id = {message.from_user.id}').fetchone()
usernick = cursor.execute(f'SELECT nick FROM users WHERE id = {message.from_user.id}').fetchone()
bot.send_message(message.from_user.id, f"{usernick[0]} ? Ваш баланс: {balanceu[0]}$ \n ? В банке: {userbank[0]}$")
Теперь код проверяет, что baninf не равно None, прежде чем обращаться к нулевому индексу