我有一个我正在创建的对象,有时它不会被创建,即None
。
我执行以下操作
dic.get("findThis")
但由于dic
有时None
它会返回AttributeError: 'NoneType' object has no attribute 'get'
有一些解决方案,例如使用
检查dic
是否存在
if not dic:
print "MISSING"
else:
#do your stuff`.
有什么更好的方法可以做到这一点?
答案 0 :(得分:3)
您在寻找三元运营商吗?
result = dic.get("findThis") if dic else None
答案 1 :(得分:0)
您可以使用defaultdict
使用它:
import collections
#example function returning the dict
def get_dict_from_json_response():
return {'findThis2':'FOUND!'}
defdic = collections.defaultdict(lambda: 'MISSING')
#get your dict
dic = get_dict_from_json_response()
if dic:
defdic.update(dic) #copy values
dic = defdic #now use defaultdict
print [dic["findThis"],dic["findThis2"],dic["findThis3"],dic["findThis4"],dic["findThis5"],dic["findThis6"]]
输出:
['MISSING', 'FOUND!', 'MISSING', 'MISSING', 'MISSING', 'MISSING']