[当dict
为dict[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 dict不支持点符号,因此您必须将访问器转换为foo["bar"]["baz"]
形式。
简单的事情,
def access(foo, accessor):
keys = accessor.split('.')
data = foo
for key in keys:
data = data[key]
return data