Найти - Пользователи
Полная версия: Как лучше доработать условие if is not None python?
Начало » Python для новичков » Как лучше доработать условие if is not None python?
1
r4khic
Всем привет ! Есть такой кусок кода.Который берет данные из БД для парсинга даты.
 def get_item_datetime(item_page,datetime_rule,datetime1_rule):
    soup = BeautifulSoup(item_page, 'lxml')
    item_datetime = soup.find(datetime_rule[0],{datetime_rule[1]:datetime_rule[2]})
    if item_datetime is not None:
        item_datetime = soup.find(datetime_rule[0],{datetime_rule[1]:datetime_rule[2]}).text
        item_datetime=dateparser.parse(item_datetime, date_formats=['%d %B %Y %H'])
    else:
        item_datetime = soup.find(datetime1_rule[0],{datetime1_rule[1]:datetime1_rule[2]}).text
        item_datetime=dateparser.parse(item_datetime, date_formats=['%d %B %Y %H'])
    return str(item_datetime)

В условии if itemdatetime is not none если item_datetime не пуст. Выполняется item_datetime иначе выполняется item_datetime в условии else.

Так вот,как мне сделать так чтобы в если в условии else не находится datetime1_rule.То условие пропускает это дату.И переходит к другой дате?
FishHook
Ну во-первых, вам никто не мешает запихнуть под else еще один if
 if a:
    pass
else:
    if b:
       pass
    else:
       pass

ну а во-вторых есть elif

 if a:
    pass
elif b:
    pass
elif c:
    pass
else:
    pass
r4khic
FishHook
Ну во-первых, вам никто не мешает запихнуть под else еще один if
Можете объяснить в чем разница этих конструкций ?
FishHook
r4khic
Можете объяснить в чем разница этих конструкций ?
Каких именно?
Rafik
Это
 if a:
    pass
else:
    if b:
       pass
    else:
       pass
если не ошибаюсь, является аналогом вот этого
 if a:
    pass
elif b:
    pass
else:
    pass
Дальше сами, решайте сами.
r4khic
Вот так доработал условие:
 def get_item_datetime(item_page,datetime_rule,datetime1_rule):
    soup = BeautifulSoup(item_page, 'lxml')
    item_datetime = soup.find(datetime_rule[0],{datetime_rule[1]:datetime_rule[2]})
    if item_datetime is not None:
        item_datetime = soup.find(datetime_rule[0],{datetime_rule[1]:datetime_rule[2]}).text
        item_datetime = dateparser.parse(item_datetime, date_formats=['%d %B %Y %H'])
    else:
        if (len(datetime1_rule) == 3):
            item_datetime = soup.find(datetime1_rule[0],{datetime1_rule[1]:datetime1_rule[2]}).text
            item_datetime = dateparser.parse(item_datetime, date_formats=['%d %B %Y %H'])
        else:
            item_datetime = ''
    return item_datetime
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB