分层访问字典

问题描述 投票:0回答:1

[当dictdict[accessor]时,希望通过类似acccessor的字符串访问'keyA.nestedKeyB'。在这里使用Lambda找到了一些东西,并覆盖了dict类(https://stackoverflow.com/questions/39818669/dynamically-accessing-nested-dictionary-keys),但不幸的是,没有可用的示例。

代码

data = { "keyA": { "nestedKeyB": "Hello" } }

print(data['keyA']['nestedKeyB'])  # prints 'Hello'

accessor = 'keyA.nestedKeyB'
print(data[accessor])  # KeyError
python
1个回答
0
投票

由于python dict不支持点符号,因此您必须将访问器转换为foo["bar"]["baz"]形式。

简单的事情,

def access(foo, accessor):
    keys = accessor.split('.')
    data = foo
    for key in keys:
        data = data[key]
    return data
© www.soinside.com 2019 - 2024. All rights reserved.