多次检查“无” - Python中的正确方法是什么

时间:2017-09-01 08:11:26

标签: python if-statement beautifulsoup

我正在使用BeautifulSoup来解析html,我经常通过以下代码找到自己:

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

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

感谢

2 个答案:

答案 0 :(得分:1)

一行回答

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

我使用get dict的attrs方法获取值,如果它存在,否则为None。

答案 1 :(得分:0)

如果result.find()返回None,如果有some_attribute,我会将其拆分为2次检查。

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