如何检查XML中是否包含属性?

时间:2018-04-29 11:02:27

标签: python xml stack-overflow data-science keyerror

我得到KeyError: 'About Me'。我已经发现用户的Stackoverflow转储数据包含一些没有AboutMe变量的用户。通过xml ['AboutMe']的迭代工作正常。但是如果某些用户没有AboutMe变量,脚本会崩溃并给我一个KeyError。

我尝试检查是否包含AboutMe。如果是,它应该打印AboutMe没有HTML标记。

如果不包含。它应该为此条目指定值None。

这是我的代码

 if element['AboutMe'] is not None:
    cleanAboutMe = BeautifulSoup(element['AboutMe'], "lxml").text
    print(cleanAboutMe)
else:
    element = {'AboutMe':'None'}

我得到的输出

This is a puppet test account I use to validate "regular user" stuff on the site
-- Jeff Atwood
Independent software engineer

I'm not takin' my sneakers off!
if element['AboutMe'] is not None:
KeyError: 'AboutMe'

我希望你们能提供帮助。我搜索并尝试Stackoverflow中的每个问题但没有帮助我。我每次都会得到这个关键错误。

一点注意:变量Element工作正常但是如果我指向AboutMe Key那么我得到错误。

最好的问候

Theeninfam

1 个答案:

答案 0 :(得分:0)

如果元素可能没有该属性,请使用element.get('AboutMe')获取属性值,如果属性不存在则使用None。 get是ElementTree实现的标准函数。 https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.get