我正在使用python3.4并通过etree解析xml文件。 一些节点具有属性"含义"其中一些具有属性"角色"有些人都有。 这些节点可能有其他属性但对我来说并不重要。 如果它们存在,我需要提取这些属性(含义和角色)。 如果它在那里我用过:
role = XMTok.attrib["role"]
但是如果节点没有属性" role"然后它给了我这个错误:
KeyError: 'role'
是否有办法首先检查节点是否具有属性" role"或不,如果是,则提取它,否则继续?
答案 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__
会有所帮助。