如何转换字符串以访问多维字典

时间:2016-09-22 04:58:37

标签: python dictionary

我有以下字典

mydict = { 'name': "Hello",
           'address': { 'place': 'India',
                        'street': {
                                   'One': 'Street one', 'Two': 'Street Two' }
                       },
            'Job': 'Sleep' }

所以我可以像mydict ['address'] ['street'] ['One']那样访问Street one的值

现在我正在考虑像这样简化这个

我有另一本字典如下

dict_map = {'Name': ['name'],
            'AddressOne': ['address','street','One'] }

有没有办法可以使用dict_map直接访问元素'One'['AddressOne']

由于 382 4

1 个答案:

答案 0 :(得分:0)

有很多方法可以做到这一点。例如:

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"]