Get nested value

Isabelle Viktoria Maciohsek · Python, Dictionary, List · Oct 28, 2020

Retrieves the value of the nested key indicated by the given selector list from a dictionary or list.

  • Use functools.reduce() to iterate over the selectors list.
  • Apply 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

Recommended snippets

  • Combine dictionary values

    Python, Dictionary

    Combines two or more dictionaries, creating a list of values for each key.

  • Find keys with value

    Python, Dictionary

    Finds all keys in the provided dictionary that have the given value.

  • Find key of value

    Python, Dictionary

    Finds the first key in the provided dictionary that has the given value.