Несмотря на то, что ответы были хороши для этого мелкого словаря, ни один из методов, определенных здесь, на самом деле не выполняет глубокое слияние словаря.
Примеры следуют:
a = { 'one': { 'depth_2': True }, 'two': True }
b = { 'one': { 'extra': False } }
print dict(a.items() + b.items())
Можно ожидать, что результат будет примерно таким:
{ 'one': { 'extra': False', 'depth_2': True }, 'two': True }
Вместо этого мы получаем это:
{'two': True, 'one': {'extra': False}}
В записи "one" должны быть элементы "глубины_2" и "дополнительные" в качестве элементов внутри словаря, если это действительно слияние.
Использование цепочки также не работает:
from itertools import chain
print dict(chain(a.iteritems(), b.iteritems()))
Результаты:
{'two': True, 'one': {'extra': False}}
Глубокое слияние, которое дал rcwesick, также приводит к тому же результату.
Да, это будет работать для объединения образцов словарей, но ни один из них не является универсальным механизмом объединения. Я обновлю это позже, когда напишу метод, который выполняет истинное слияние.