Существует ли рекурсивная версия встроенного в Python dict.get ()?

У меня есть вложенный объект словаря, и я хочу иметь возможность получать значения ключей с произвольной глубиной. Я могу сделать это путем создания подклассовdict:

>>> class MyDict(dict):
...     def recursive_get(self, *args, **kwargs):
...         default = kwargs.get('default')
...         cursor = self
...         for a in args:
...             if cursor is default: break
...             cursor = cursor.get(a, default)
...         return cursor
... 
>>> d = MyDict(foo={'bar': 'baz'})
>>> d
{'foo': {'bar': 'baz'}}
>>> d.get('foo')
{'bar': 'baz'}
>>> d.recursive_get('foo')
{'bar': 'baz'}
>>> d.recursive_get('foo', 'bar')
'baz'
>>> d.recursive_get('bogus key', default='nonexistent key')
'nonexistent key'

Однако я не хочу иметь подклассdict чтобы получить это поведение. Есть ли какой-то встроенный метод с аналогичным или похожим поведением? Если нет, существуют ли какие-либо стандартные или внешние модули, обеспечивающие такое поведение?

Я сейчас использую Python 2.7, хотя мне было бы интересно услышать и о решениях 3.x.

Ответы на вопрос(0)

Ваш ответ на вопрос