@Ivanus

Python & Mysql | Как сравнить полученное значение из запроса?

Никак не могу полученное значение сравнить.
Делаю такой запрос:

db = MySQLdb.connect(host=**,user=**,passwd=**,db=**)
c = db.cursor()

c.execute("SELECT `status` AS TEXT FROM table ORDER BY id DESC LIMIT 1")
status = [item[0] for item in c.fetchall()]
print status


На выходе получаю такое значение: "[0L]" - вообще не пойму как такое значение получилось.
В БД, status с типом INT(2) имеет значение = 0, а питон его выводит как "[0L]".

Отсюда вопрос, как получить правильное значение из БД (status) чтобы в дальнейшем его сравнить ( if status == 0 т.п.) ?

P.S. я уже пытался даже полученный ответ ( "[0L]" ) сравнивать if status == "[0L]" - не работает
  • Вопрос задан
  • 3431 просмотр
Решения вопроса 1
@Ivanus Автор вопроса
Решил данную проблему таким образом:
после получения, я переменную перевел в строку
status = ''.join(str(e) for e in status)

И теперь if status == "0" - работает без проблем.

Всем спасибо за ответы.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
tema_sun
@tema_sun
У вас status является списком с результатами. Но так результат только один, то и список у вас содержит только один элемент. Буква L означает, что ваш результат является "long", но при сравнении вам эту L писать не обязательно.
Когда вы пишите if status == "[0L]", то вы сравниваете status со строкой "[0L]", а не со списком содержащим элемент 0L.
Ответ написан
Ваш ответ на вопрос

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

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