Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 21, 2019 07:28:44

r4khic
Зарегистрирован: 2019-07-23
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Как лучше доработать условие if is not None python?

Всем привет ! Есть такой кусок кода.Который берет данные из БД для парсинга даты.

 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.То условие пропускает это дату.И переходит к другой дате?

Отредактировано r4khic (Авг. 21, 2019 07:45:07)

Офлайн

#2 Авг. 21, 2019 09:14:55

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как лучше доработать условие if is not None python?

Ну во-первых, вам никто не мешает запихнуть под else еще один if

 if a:
    pass
else:
    if b:
       pass
    else:
       pass

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

 if a:
    pass
elif b:
    pass
elif c:
    pass
else:
    pass



Офлайн

#3 Авг. 21, 2019 09:29:54

r4khic
Зарегистрирован: 2019-07-23
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Как лучше доработать условие if is not None python?

FishHook
Ну во-первых, вам никто не мешает запихнуть под else еще один if
Можете объяснить в чем разница этих конструкций ?

Офлайн

#4 Авг. 21, 2019 11:35:13

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как лучше доработать условие if is not None python?

r4khic
Можете объяснить в чем разница этих конструкций ?
Каких именно?



Офлайн

#5 Авг. 21, 2019 15:03:13

Rafik
Зарегистрирован: 2018-09-04
Сообщения: 231
Репутация: +  27  -
Профиль   Отправить e-mail  

Как лучше доработать условие if is not None python?

Это

 if a:
    pass
else:
    if b:
       pass
    else:
       pass
если не ошибаюсь, является аналогом вот этого
 if a:
    pass
elif b:
    pass
else:
    pass
Дальше сами, решайте сами.

Офлайн

#6 Авг. 23, 2019 14:54:54

r4khic
Зарегистрирован: 2019-07-23
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Как лучше доработать условие if is not None python?

Вот так доработал условие:

 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

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version