code: def to_dict(obj):
      
      if isinstance(obj, dict):
          return obj
      elif hasattr(obj, "to_dict"):
          return obj.to_dict()
      try:
          return simple_object_to_dict(obj)
      except:
          raise ValueError(
              "Cannot convert %s : %s to dictionary" % (
                  obj, type(obj)))
docs: If value wasn't isn't a primitive scalar or collection then it needs to
      either implement to_dict (instances of Serializable) or has member
      data matching each required arg of __init__.