Как проверить, является ли результат запроса sql пустым в web.py/python - PullRequest
0 голосов
/ 01 января 2012

Я работаю над веб-приложением в рамках web.py и мне нужно, чтобы web.py/python проверил, является ли результат запроса sql пустым.

Вот моя текущая функция:

def get_hours():
    result = dbconn.query("select * from hours where date < (select max(date) from last_export) order by date DESC")
    return result

Это работает, как и ожидалось, но я хочу, чтобы функция возвращала значение False, если результат запроса пуст.Я уже знаю, что у python нет способа вернуть количество элементов в итерируемом объекте (который возвращается dbconn.query независимо от того, пуст он или нет), без подсчета для цикла.Что для меня не сработает, так как я не хочу, чтобы результат повторялся ДО того, как он вернется.

Вот пример того, чего я хочу достичь с помощью функции:

def get_hours():
    result = dbconn.query("select * from hours where date < (select max(date) from last_export) order by date DESC")

    if <result is empty/no rows/nothing to iterate>:
        return False

    else:
        return result

Есть предложения?

Ответы [ 3 ]

2 голосов
/ 01 января 2012
def get_hours():
    result = dbconn.query("select * from hours where date < (select max(date) from last_export) order by date DESC")   

    if result:
        return result
    else:
        return False

Вот очень интересный ответ для более подробной информации:

https://stackoverflow.com/a/2710949/492258

0 голосов
/ 29 октября 2013

Попробуйте это:

def get_hours():
    check = False
    results = dbconn.query("select * from hours where date < (select max(date) from last_export) order by date DESC") 
    for result in results:
        check = True
        #Do stuff here
    if check == False:
        return false #query returned nothing  
0 голосов
/ 01 января 2012

Вот связанный (дублирующий?) Вопрос о проверке наличия в генераторе каких-либо элементов, который содержит несколько предложений для обхода этого ограничения.Насколько я знаю, в Python нет простого способа проверить, пуст ли итератор.

...