一句话,我要找的或多或少是Python中SQL的nvl()的等价物。在
更多信息:
我有一个从json列表中检索数据的循环。它们看起来都一样,但有些却缺少我要找的东西。因此,如果我试图获取data['movie']['boxOffice'][0]['admissionCount']
,但它不在JSON中,我会得到一个错误(注意:这可能是因为'admissionCount'不存在,或者'boxOffice'不存在)。在
为了避开这个问题,我现在要做的是:
try:
admissionCount = data['movie']['boxOffice'][0]['admissionCount']
except:
admissionCount = ''
它工作得很好,但我有大约50个字段需要检查。。。在
我试着把它变成一个函数:
^{pr2}$然后意识到这是愚蠢的,当然我得到了一个错误。在
我怎样才能避免做50个try/except
块?在
谢谢
您可以对dict使用带默认值的
.get()
方法您可以使用函数安全地深入到该结构中:
测试数据和测试用例:
^{pr2}$在这方面,我们不妨用一种普通的方式来做:
这要求任何子对象实现正确的}来处理不可访问(子)项以外的任何其他项。从默认JSON解码器返回的dict和list对象会执行此操作,但要小心自定义对象。在
^{pr2}$__getitem__()
,该子对象不会引发KeyError
或{相关问题 更多 >
编程相关推荐