检查元素是否具有属性python3

时间:2014-10-07 11:43:50

标签: python xml python-3.x elementtree

我正在使用python3.4并通过etree解析xml文件。 一些节点具有属性"含义"其中一些具有属性"角色"有些人都有。 这些节点可能有其他属性但对我来说并不重要。 如果它们存在,我需要提取这些属性(含义和角色)。 如果它在那里我用过:

role = XMTok.attrib["role"]

但是如果节点没有属性" role"然后它给了我这个错误:

KeyError: 'role'

是否有办法首先检查节点是否具有属性" role"或不,如果是,则提取它,否则继续?

2 个答案:

答案 0 :(得分:3)

attrib是标准字典,因此您可以使用in成员资格运算符进行测试:

if 'role' in XMTok.attrib:

或者您可以使用dict.get()并在缺少密钥时返回默认值(默认为None,或者您可以指定其他内容):

role = XMTok.attrib.get('role', 'No role set')

答案 1 :(得分:0)

使用__dict__检查属性。 所以XMTok.attrib._dict__会有所帮助。