2012-09-27 3 views
4

lxml의 xpath() 함수는 일반적으로 요소 목록을 반환합니다. 내가 정확히 하나 개의 요소를 반환 할 것으로 예상하는 XPath가있는 경우lxml xpath를 사용하여 정확히 하나의 요소 또는 발생 예외 얻기

, 무엇을 가장 좋은 방법 : 하나 개의 요소를 반환하거나 다른 예외를 발생한다

  • 확인하는 것이, 그리고 :
  • 해당 요소를 가져옵니다 (하나의 요소로 된 목록과 반대되는)?

저는 SQLAlchemy의 one() 함수의 아날로그를 찾고 있습니다.

답변

16
try: 
    (element,) = tree.xpath('//xpath/selector') 
except ValueError: 
    raise InvalidSelector() 
    # happened because the list was either empty or contained multiple elements 
+0

니스! 튜플에 대해리스트를 풀 수 있다는 것을 나는 몰랐다. – mskel

+0

정말 멋지고 간단한 해결책 – pictuga