即使词典中不存在键,也要继续

时间:2015-08-26 11:51:01

标签: python python-2.7 dictionary

我的应用程序从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):

1 个答案:

答案 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 )