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