Python 3 эквивалента HTMLParseError? - PullRequest
0 голосов
/ 29 января 2020

Я просто хотел узнать, есть ли Python 3 эквивалент HTMLParseError, как в Python 2. HTMLParseError, кажется, устарел с Python 3.3 и далее и удален в Python 3.5 ,

Есть ли способ поймать HTMLParseError в Python версиях> 3.5?

Ниже приводится обратная связь, которую я получаю:

  File "/opt/Projects/WAFToast/main.py", line 12, in <module>
    HTMLParseError = html.parser.HTMLParseError
AttributeError: module 'html.parser' has no attribute 'HTMLParseError'

Делая некоторое гугление вокруг , Я обнаружил ту же проблему, исправленную с помощью патча, описанного ниже, который imho не является полезным решением:

try:
    from html.parser import HTMLParseError
except ImportError:  # Python 3.5+
    class HTMLParseError(Exception):
        pass

Было бы здорово, если бы кто-то мог указать мне на необходимость отсутствует. =) * * 1016

1 Ответ

1 голос
/ 29 января 2020

docs скажем:

устарело с версии 3.3, будет удалено в версии 3.5: это исключение устарело, поскольку оно никогда не вызывается анализатором ( когда используется строгий режим по умолчанию) .

Он был удален, потому что ничего не подняло его, если не используется (предположительно) мало используемый строгий режим, поэтому необходимо задать вопрос: " Вы используете строгий режим? "

Если это не так, вы можете безопасно удалить импорт и код, который его перехватывает.

Если это так, проверьте, какое исключение возникает (если ) и импортируйте его вместо этого.

Если вы используете строгий режим и должны поддерживать обе версии Python, вы можете сделать что-то вроде

try:
    from html.parser import HTMLParseError as ParseError
except ImportError:  # Python 3.5+
    from html.parser import NewTypeOfFancyException as ParseError

, затем использовать except ParseError где применимо.

...