2017-09-01 34 views
2
有道

我使用BeautifulSoup解析HTML,我经常发现我自己用下面的代码:多检查“无” - 这将是在Python

result.find("some_tag").attrs['some_attribute'] 

什么是正确的方法验证find方法是否没有返回None并且还检查没有嵌套的“if”语句的属性中是否有这样的键?

感谢

回答

1

一行答案

attr_val = result.find('some_tag').attrs.get('some_attr', None) if result.find('some_tag') else None 

我用get方法attrs字典得到一个值,如果它存在,否则无。

0

我会将它分成2份支票 - 如果result.find()返回None,并且如果有some_attribute

find_result = result.find("some_tag") 
if find_result: 
    try: 
     find_result.attrs["some_attribute"] 
    except KeyError as e: 
     print("some_attribute not found!") 
+0

谢谢,但它是我试图避免的代码 – Zaky