On 4/12/2012 19:59, John Nagle wrote:
On 4/12/2012 10:41 AM, Roy Smith wrote:
Is there a simple way to deep merge two dicts? I'm looking for Perl's
Hash::Merge (http://search.cpan.org/~dmuey/Hash-Merge-0.12/Merge.pm)
in Python.

def dmerge(a, b) :
   for k in a :
        v = a[k]
        if isinstance(v, dict) and k in b:
            dmerge(v, b[k])
   a.update(b)

There are a few problems with that code:
1) you don't make sure that b[k] is a dict so
       a={'a':{'b':1}}; b={'a':1}
   make it crash.
2) the last update overwrites nested updates, but this could be the intended behavior.
For instance, with the 'a' and 'b' above, the result would be
    {'a':1}

Kiuhnm
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to