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