#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 .
Комментариев нет:
Отправить комментарий