functools.reduce() to iterate over the selectors list.operator.getitem() for each key in selectors, retrieving the value to be used as the iteratee for the next iteration.from functools import reduce from operator import getitem def get(d, selectors): return reduce(getitem, selectors, d)
users = { 'freddy': { 'name': { 'first': 'fred', 'last': 'smith' }, 'postIds': [1, 2, 3] } } get(users, ['freddy', 'name', 'last']) # 'smith' get(users, ['freddy', 'postIds', 1]) # 2
Subscribe to get resources directly to your inbox. You won't receive any spam! ✌️