Я получаю ошибку NoneType при попытке работать с Python и Sqlite3 - PullRequest
0 голосов
/ 05 апреля 2020
cursor.execute(f"SELECT user_id, Class, Health, Mana, Defense, Maxmana, Maxhealth, Attack, Critical FROM savefile WHERE user_id = '{message.author.id}'")
           result1 = cursor.fetchone()
           classs = int(result1[1]); health = int(result1[2]); mana = int(result1[3]); defense = int(result1[4]); attack = int(result1[7]); critical = int(result1[8])
           sql = "UPDATE savefile SET Class = ? AND SET Health = ? AND SET Mana = ? AND SET Defense = ? AND SET Maxmana = ? AND SET Maxhealth = ? AND SET Attack = ? AND SET Critical = ? WHERE user_id = ?"
           val = (classs + classplus, str(message.author.id),
                  health + healthplus, str(message.author.id),
                  mana + manaplus, str(message.author.id),
                  defense + defenseplus, str(message.author.id),
                  attack + attackplus, str(message.author.id),
                  critical + criticalplus, str(message.author.id))
           cursor.execute(sql, val)
           db.commit()

Это фрагмент кода, который я использую. В настоящее время я создаю диск-бот и имею несколько других команд, которые добавляют в колонку. Тем не менее, в строке "classs = ...", в третьей строке моего кода, показанной выше, (дополнительный S предназначен специально), я получаю эту ошибку:

TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'

I Я относительно новичок в использовании sqlite в целом и не понимаю, почему это происходит. У меня есть код, подобный этому, в моих других командах бота, и я не понимаю, почему это не работает. Заранее благодарю за любую помощь!

1 Ответ

0 голосов
/ 05 апреля 2020

Один из этих результатов (result1 [i]), скорее всего, относится к NoneType, то есть данные не извлекаются из базы данных:

classs = int(result1[1]); health = int(result1[2]); mana = int(result1[3]); defense = int(result1[4]); attack = int(result1[7]); critical = int(result1[8])
...