如何在一次传递中检查KeyError的多个dict键?

时间:2016-08-19 21:25:02

标签: python python-2.7 dictionary keyerror

我将一个字典传递给多个函数。说:params

def func1(self,params):
    self.data=params['KEY1']
    self.value=params['KEY2']
    self.ip=params['KEY3']
    self.template=params['KEY4']
    .....
    self.log=params['KEY10']

为了避免KeyError,我将上面的代码更改为:

def func1(self,params):
    try:
        self.data=params['KEY1']
    except KeyError:
        self.data=None
    try:
        self.value=params['KEY2']
    except KeyError:
        self.value=None
      ...
      ...

这几乎是10个键,这是不正确的。

有什么方法可以一次性检查所有按键。在params中为仅有不存在的键分配无。

我该如何检查?因为我还在检索后将一个键的值赋给某个​​变量。

1 个答案:

答案 0 :(得分:3)

你不能在1遍中完成,但你可以使用.get方法:

def func1(self,params):
    self.data = params.get('KEY1')
    ...
如果请求的密钥中没有值,

.get将返回None