简而言之,我正在寻找的或多或少等同于 SQL 的 nvl()在 Python 中。
更多信息:
我有一个从 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
block ?
谢谢
最佳答案
你可以使用默认的.get()
方法
dict = {"a" : 1}
dict.get("a") # return 1
dict.get("b") # return None
dict.get("b", "default_obj") # return default_obj
关于python - 如何执行 nvl() 以避免来自不存在的 json 元素的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41681989/