code: def diff_dictionaries(old_dict, new_dict):
      
  
      old_set = set(old_dict)
      new_set = set(new_dict)
  
      added_set = new_set - old_set
      removed_set = old_set - new_set
      common_set = old_set & new_set
  
      changes = 0
      output = []
      for key in added_set:
          changes += 1
          output.append(DictValue(key, None, new_dict[key]))
  
      for key in removed_set:
          changes += 1
          output.append(DictValue(key, old_dict[key], None))
  
      for key in common_set:
          output.append(DictValue(key, old_dict[key], new_dict[key]))
          if str(old_dict[key]) != str(new_dict[key]):
              changes += 1
  
      output.sort(key=attrgetter("key"))
      return [changes, output]
docs: Diffs two single dimension dictionaries
  
      Returns the number of changes and an unordered list
      expressing the common entries and changes.
  
      Args:
          old_dict(dict): old dictionary
          new_dict(dict): new dictionary
  
      Returns: list()
          int: number of changed records
          list: [DictValue]