使用lxml xpath获取正好一个元素或引发异常

msk*_*kel 6 python xpath lxml

lxml中的xpath()函数通常返回元素列表.

如果我有一个XPath,我希望它只返回一个元素,那么最好的方法是:

  • 检查是否返回了一个元素,否则引发异常,并且:
  • 获取该元素(而不是单元素列表)?

我真的在寻找SQLAlchemy的one()函数的模拟.

and*_*ean 18

try:
    (element,) = tree.xpath('//xpath/selector')
except ValueError:
    raise InvalidSelector()
    # happened because the list was either empty or contained multiple elements
Run Code Online (Sandbox Code Playgroud)