我正在尝试从字典中获取一些值(实际上它是我从其他来源获得的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"])
我不知道这是处理这个问题的好方法还是有正确的方法