code: def merge(self, destination, source):
          
          if isinstance(source, dict):
              for key, value in source.items():
                  if isinstance(value, dict):
                      # get node or create one
                      node = destination.setdefault(key, {})
                      if node is not None:
                          self.merge(node, value)
                      else:
                          destination[key] = value
                  else:
                      destination[key] = value
docs: run me with nosetests --with-doctest file.py
  
          >>> a = { 'first' : { 'all_rows' : { 'pass' : 'dog', 'number' : '1' } } }
          >>> b = { 'first' : { 'all_rows' : { 'fail' : 'cat', 'number' : '5' } } }
          >>> merge(a, b) == { 'first' : { 'all_rows' : { 'pass' : 'dog', 'fail' : 'cat', 'number' : '5' } } }