SQLite запрос возвращает false

1

Таким образом, для моего проекта я пытаюсь, чтобы пользователь вводил что-то в текстовое поле, и если он равен тому, что хранится в базе данных, тогда он скажет им, что это правда. Однако на данный момент, даже когда правильная вещь будет введена, она вернет false. Это текущий код для части, которая получает ответ, возвращает и сравнивает его:

    def submit():
        answerA=entry_A.get()
        answerB=entry_B.get()
        answerC=entry_C.get()
        answerD=entry_D.get()
        answerE=entry_E.get()
        answerF=entry_F.get()
        print(answerA,", ",answerB,", ",answerC,", ",answerD,", ",answerE,", ",answerF)

        labelA=cursor.execute\
        ("select labelA from diagramLabels where diaName == 'plantCell'").fetchall()
        con.commit()
        if labelA == answerA:
            print("Answer A is correct")
        else:
            print("Answer A is false")

И это результат, который он дает в Idle, а также то, что в базе данных

Пожалуйста, скажи мне, что я делаю неправильно.

Теги:
sqlite3
tkinter
python-3.4

1 ответ

1
Лучший ответ

Вы должны использовать fetchone() вместо fetchall().
fetchall() возвращает несколько строк (например: (('nucleus',),)), тогда как fetchone() возвращает только одну строку. Затем вы получите что-то вроде этого: ('nucleus',)
Вы можете сравнить его с labelA[0] == answerA.

  • 0
    Да, это работает! Большое спасибо! : D
  • 0
    Добро пожаловать :) @Илья

Ещё вопросы

Сообщество Overcoder
Наверх
Меню