Source code for diggrtoolbox.deepget.deepget
#!/usr/bin/env python3
"""
Deepget is a small function enabling the user to "cherrypick" specific values
from deeply nested dicts or lists.
Author: Florian Rämisch <raemisch@ub.uni-leipzig.de>
Copyright: Universitätsbibliothek Leipzig, 2018
License: GPLv3
"""
[docs]def deepget(obj, keys):
"""
Deepget is a small function enabling the user to "cherrypick" specific
values from deeply nested dicts or lists. This is useful, if the just one
specific value is needed, which is hidden in multiple hierarchies.
:Example:
>>> import diggrtoolbox as dt
>>> ENTRY = {'data' : {'raw': {'key1': 'value1',
'key2': 'value2'}}}
>>> KEY2 = ['data', 'raw', 'key2']
>>> dt.deepget(ENTRY, KEY2) == 'value2'
True
"""
def deeper(obj, keys):
if len(keys) > 1:
return deeper(obj[keys.pop(0)], keys)
else:
return obj[keys.pop(0)]
return deeper(obj, keys.copy())