python - 如何执行 nvl() 以避免来自不存在的 json 元素的错误?

标签 python json

简而言之,我正在寻找的或多或少等同于 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/

相关文章:

javascript - 每个 json 加载中的 Jquery.html 都不起作用

java - com.google.gson.JsonObject 无法在 Java 中转换为 com.google.gson.JsonArray

python - 在 numpy 中使用多个排序键进行排序

python - 最大限度地分散所有护士的调度

python - Python 中的信号处理

javascript - JSON,语法错误 : unexpected token I(. ..)

python - 使用列表和字符串方法在 python 中检测单词

python - 通过字符串前缀加入 Pandas 数据帧

mysql - 如何将 SQL 查询结果转换/复制为 JSON?

php - 运行 PHP 脚本,无需网页等待其完成