我如何将字符串转换为访问多维字典
问题描述:
我有以下字典我如何将字符串转换为访问多维字典
mydict = { 'name': "Hello",
'address': { 'place': 'India',
'street': {
'One': 'Street one', 'Two': 'Street Two' }
},
'Job': 'Sleep' }
所以我可以访问街之一的值一样mydict [“地址”] [“街”] [“一”]
现在我想简化此类似这样的
我有另一种解释像下面
dict_map = {'Name': ['name'],
'AddressOne': ['address','street','One'] }
是否有使用dict_map [“AddressOne”]
感谢 什么办法可以直接访问元素“一” 382 4
答
有还真不少方法可以做到这一点。例如:
class DictMapper(object):
def __init__(self, d, d_map):
self.d = d
self.dict_map = d_map
def __getitem__(self, item):
return reduce(lambda res, path: res[path], self.dict_map[item], self.d)
用法:
dm = DictMapper(mydict, dict_map)
print dm["AddressOne"]
是的,有很多种方法。你在想什么? –
@SergeyGornostaev - 我还在等待最近24分钟的代码 –
感谢您指出这一点。一些如何在我的搜索中,这个线程没有出现。 – user2677279