检查字典python中是否存在值

时间:2016-02-10 17:55:38

标签: python dictionary

我有类似的东西,(效果很好)给了我关键值和变量值。

for k,v in x.iteritems():
        print k, v.samplekey,v.units,v.comment

其中x是字典,v是netCDF4 variable。对于字典' v',可能存在或可能不存在键的值。 [例如。关键单位'可能存在于字典中的某个项目中,而其他项目可能会丢失。]

我得到了AttributeError: Attribute not found。在字典中找不到密钥时的消息。我想在没有找到钥匙的情况下填写N/A

2 个答案:

答案 0 :(得分:2)

使用hasattr方法:

def attr(x, a):
    return x.__getattribute__(a) if hasattr(x, a) else None

print k, attr(v, 'samplekey'), attr(v, 'units'), attr(v, 'comment')

或者,getattr内置(感谢RemcoGerlich!):

print k, getattr(v, 'samplekey', None)

答案 1 :(得分:1)

使用getattr,默认情况下该属性不存在:

for k,v in x.iteritems():
    print (k,
           getattr(v, 'samplekey', 'N/A'),
           getattr(v, 'units', 'N/A'),
           getattr(v, 'comment', 'N/A'))