Python 即使字典中不存在键,也要继续
我的应用程序从json对象加载一些参数,而json对象又被解释为字典。我将几个类变量设置为键的值,例如Python 即使字典中不存在键,也要继续,python,python-2.7,dictionary,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”。这无关紧要,所以我处理keyrerror异常,然后继续程序流程 现在,当一个KeyError发生时,如果“field_
try:
self.a = mydict["field_a"]
self.b = mydict["field_b"]
self.c = mydict["field_c"]
根据json文件(我从中获得了几个不同的对象),有时字典将不包含键“field_b”。这无关紧要,所以我处理keyrerror
异常,然后继续程序流程
现在,当一个KeyError
发生时,如果“field_b”不存在,它会跳出并跳过对“field_c”的检查。如果(key[“key”]不是None):在提取数据之前,如何强制python检查所有字段,而不需要大量的 使用:
如果(key[“key”]不是None
,则默认值将是None,似乎与匹配,如果您想要不同的默认值,只需将您想要的任何值作为默认值传递给第二个参数,以获取mydict.get(“field_a”,“whatever”)
如果您想保持self.a等的状态,如果它们没有出现在dict中,请将其用作默认值:
self.a = mydict.get("field_a", self.a )
使用dict.get()
它会返回None
如果密钥不存在,而不是抛出KeyError
@AnandSKumar是的,我会接受这个答案。非常简单,那么容易,嗯。10分钟后就会接受答案。是的,那么容易,毕竟是python;)来自嵌入式C,我继续感到惊讶。
self.a = mydict.get("field_a", self.a )