捕获xmltodict中的ExpatError
我正在使用 xmltodict
来解析 XML 文件。
如果我们解析一个无效的 XML 文件,它会抛出一个 ExpatError
错误。
我该如何捕捉这个错误呢?这是我在 ipython 界面上尝试的代码:
>>> import xmltodict
>>> xml_data = """<?xml version="1.0" encoding="UTF-8" ?>
... <Website>"""
>>> xml_dict = xmltodict.parse(xml_data)
ExpatError: no element found
>>> try:
... xml_dict = xmltodict.parse(xml_data)
... except ExpatError:
... print "that's right"
NameError: name 'ExpatError' is not defined
>>> try:
... xml_dict = xmltodict.parse(xml_data)
... except xmltodict.ExpatError:
... print "that's right"
AttributeError: 'module' object has no attribute 'ExpatError'
2 个回答
8
找到了,xmltodict
模块本身就包含了这个功能,所以不需要单独从xml
模块导入它。
>>> try:
... xml_dict = xmltodict.parse(xml_data)
... except xmltodict.expat.ExpatError:
... print "that's right"
...
that's right
14
你需要从 xml.parsers.expat
导入 ExpatError
。
from xml.parsers.expat import ExpatError