简而言之,我要寻找的是与Python中的SQL nvl()相当的东西。

更多信息 :

我有一个循环,从json列表中检索数据。它们看上去都一样,但是其中一些缺少我正在检索的东西。因此,如果我尝试获取data['movie']['boxOffice'][0]['admissionCount']并且它不在JSON中,则会收到错误消息(注意:这可能是因为'admissionCount'不存在,或者因为'boxOffice'不存在)。

为了避免这种情况,以下是我目前正在做的事情:

try:
    admissionCount = data['movie']['boxOffice'][0]['admissionCount']
except:
    admissionCount = ''


它工作正常,但是我有大约50个字段需要检查...

我试图把它变成一个函数:

def nvl(json_element):
    try:
        out = json_element
    except:
        out = ''
    finally:
        return out

nvl(data['movie']['boxOffice'][0]['admissionCount'])


然后意识到这是愚蠢的,当然我得到了一个错误。

如何避免必须做50个try/except块?

谢谢

最佳答案

您可以将.get()方法与默认命令一起使用

dict = {"a" : 1}
dict.get("a") # return 1
dict.get("b") # return None
dict.get("b", "default_obj") # return default_obj

09-07 11:36