在NONE对象上返回丢失

时间:2014-02-21 19:23:08

标签: python

我有一个我正在创建的对象,有时它不会被创建,即None

我执行以下操作 dic.get("findThis")但由于dic有时None它会返回AttributeError: 'NoneType' object has no attribute 'get'

有一些解决方案,例如使用

检查dic是否存在
if not dic: 
  print "MISSING" 
else: 
  #do your stuff`. 

有什么更好的方法可以做到这一点?

2 个答案:

答案 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']