从嵌套字典项中获取值而不会引发KeyError异常

时间:2017-08-30 13:44:13

标签: python dictionary

我正在尝试从字典中获取一些值(实际上它是我从其他来源获得的json) 问题是我得到KeyError,因为字典并不总是具有相同的结构,在这种情况下,我想简单地将值设置为None,而不是KeyError

我尝试了get()功能它工作正常,但我有一些限制,因为我可能会有这样的事情:

value = dictionary["key1"][0]["key2"][0]["key3"]

在这种情况下,我创建了一个完成工作的函数:

def get_value(dictionary, list_keys):

    try:
        value = dictionary
        for key in list_keys:
            value = value[key]
        return value

    except KeyError:
        return None

因此,当我想得到一个值时,我只需要打电话:

value = get_value(d,["key1", 0, "key2", 0, "key3"])

我不知道这是处理这个问题的好方法还是有正确的方法

0 个答案:

没有答案