code: def compare_dict_value(src_data: dict, dst_data: dict):
      """Compare dict value
  
      :param src_data:
      :param dst_data:
      :return:
      """
  
      class DateEncoder(json.JSONEncoder):
          # FIXME: This class can only be accurate to the day. If it is a minute,
          # there may be a bug
          def default(self, o):
              if isinstance(o, (datetime.datetime, datetime.date)):
                  return o.strftime("%Y-%m-%d %H:%M:%S")
              return json.JSONEncoder.default(self, o)
  
      src_data = json.dumps(
          src_data, indent=4, sort_keys=True, cls=DateEncoder
      )
      dst_data = json.dumps(
          dst_data, indent=4, sort_keys=True, cls=DateEncoder
      )
      diff = difflib.ndiff(src_data, dst_data)
      changes = [
          line
          for line in diff
          if line.startswith("+ ") or line.startswith("- ")
      ]
      return changes
  
imports: from __future__ import division
  from __future__ import print_function
  import os
  import re
  import copy
  import json
  import yaml
  import redis
  import bisect
  import struct
  import difflib
  import inspect
  import hashlib
  import datetime
  import requests
  import collections
  import numpy
  import pandas
  from pathlib import Path
  from typing import List, Union, Optional, Callable
  from packaging import version
  from .file import get_or_create_path, save_multiple_parts_file, unpack_archive_with_buffer, get_tmp_file_with_buffer
  from ..config import C
  from ..log import get_module_logger, set_log_with_config
  from .mod import get_module_by_module_path, split_module_path, get_callable_kwargs, get_cls_kwargs, init_instance_by_config, class_casting
label_desc: Use image node_id 14 for calling a global function with example usage: compare_dict_value(src_data, dst_data) and returns: changes, json, o