Страницы

Поиск по вопросам

вторник, 7 января 2020 г.

Выборка из SQL возвращает лишние скобки

#python #sql


Делаю выборку из SQL
cur = db.cursor()
cur.execute("SELECT FL_ARCHIVE FROM ROUTE WHERE FL_ARCHIVE >= 10")
select_results = cur.fetchall()
for result in select_results:
    print result

Потом для каждого элемента выборки равного к примеру десяти хочу запускать определенную
функцию. Проблема в том, что из БД мне не 10 вовзращается, а
(10,)
(10,)
(11,)

Я конечно понимаю, что все лишнее можно выкусить, но наверно я что-то не так делаю,
если такой результат получается.
Кстати, вот 10 это будет строкой или числом? Т.е. мне надо писать
if result == '10':

или могу:
if result == 10:
    


Ответы

Ответ 1



Вы вызываете fetchall() , поэтому Вам возвращается кортеж. Делайте срез на первый элемент. print result[0] if result == '10': и if result == 10: разные сравнения. Лучше перед сравнением приводите к ожидаемому типу через str(result[0]) , например . Хотя в вашем случае возвращается именно тип int .

Комментариев нет:

Отправить комментарий