我的应用程序从json对象加载一些参数,而json对象又被解释为字典。我将几个类变量设置为键的值,例如
try:
self.a = mydict["field_a"]
self.b = mydict["field_b"]
self.c = mydict["field_c"]
取决于json文件(我从中获取了几个不同的对象),有时候字典将不包含键“field_b”。这没关系,所以我处理KeyError
异常并继续程序流程。
现在,当KeyError
发生时,如果“field_b”不存在,它会跳出并跳过检查“field_c”。在拉出数据之前,如何强制python检查所有字段,而不需要很多if(key["key"] is not None):
?
答案 0 :(得分:6)
使用dict.get:
self.a = mydict.get("field_a")
self.b = mydict.get("field_b")
.....
默认值为None,似乎与if(key["key"] is not None
匹配,如果您想要一个不同的默认值,只需将您想要的任何值作为第二个arg传递给mydict.get("field_a","whatever")
。
如果你想保留self.a等,如果它们没有出现在dict中,请将它们用作默认值:
self.a = mydict.get("field_a", self.a )