python:以通用方式获取嵌套字典的值
我正在为我的问题做一个简单的用例,它是:python:以通用方式获取嵌套字典的值,python,dictionary,Python,Dictionary,我正在为我的问题做一个简单的用例,它是: dic = {'a': 1, 'b': {'c': 2}} 现在我想要一个在这个字典上操作的方法,基于键获取值 def get_value(dic, key): return dic[key] 在不同的位置,将调用此通用方法来获取值 get_值(dic,'a')将起作用 是否有可能以更通用的方式获取值2(dic['b']['c'])。使用未绑定方法(或dict.\uuuu getitem\uuuuu)和: 更新 如果您使用dict.get
dic = {'a': 1, 'b': {'c': 2}}
现在我想要一个在这个字典上操作的方法,基于键获取值
def get_value(dic, key):
return dic[key]
在不同的位置,将调用此通用方法来获取值
get_值(dic,'a')
将起作用
是否有可能以更通用的方式获取值2(dic['b']['c'])
。使用未绑定方法(或dict.\uuuu getitem\uuuuu
)和:
更新
如果您使用dict.get
并尝试访问不存在的密钥,它可能会通过返回None
来隐藏KeyError
:
>>> reduce(dict.get, ['x', 'c'], OrderedDict({'a': 1, 'b': {'c': 2}}))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: descriptor 'get' requires a 'dict' object but received a 'NoneType'
使用未绑定的方法(或命令.uuu getitem_uuu
)和:
更新
如果您使用dict.get
并尝试访问不存在的密钥,它可能会通过返回None
来隐藏KeyError
:
>>> reduce(dict.get, ['x', 'c'], OrderedDict({'a': 1, 'b': {'c': 2}}))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: descriptor 'get' requires a 'dict' object but received a 'NoneType'
你的意思是
dic['b']['c']
,不是dic['a']['b']
,对吧?你的意思是dic['b']['c']
,不是dic['a']['b']
,对吗?
>>> reduce(dict.__getitem__, ['x', 'c'], OrderedDict({'a': 1, 'b': {'c': 2}}))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'x'