Аргумент cursor.execute
, который представляет значения, которые вам нужно вставить в базу данных, должен быть кортежем (последовательность). Однако рассмотрим этот пример и посмотрим, что происходит:
>>> ('jason')
'jason'
>>> ('jason',)
('jason',)
В первом примере вместо этого вычисляется строка; поэтому правильный способ представления однозначного кортежа аналогичен во второй оценке. Во всяком случае, код, приведенный ниже, чтобы исправить вашу ошибку.
self.cursor.execute("SELECT weight FROM Equipment WHERE name = ?", (item,))
Также давая аргументы значения cursor.execute
как строки (это то, что вы делаете) приводит к первой оценке в примере и результатам в ошибка, которую вы получаете.