Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from datetime import datetime, date
- from decimal import Decimal
- from enum import Enum
- class SerializationUtil(object):
- @staticmethod
- def object_to_dict(obj):
- return SerializationUtil._dump(obj)
- @staticmethod
- def _dump(obj):
- if isinstance(obj, str) or isinstance(obj, complex):
- return str(obj)
- if isinstance(obj, (int, float, bool)):
- return obj
- if obj is None:
- return None
- # elif isinstance(obj, bytes):
- # return string_util.bytes_to_str(obj)
- elif isinstance(obj, Decimal):
- return float(str(obj))
- elif isinstance(obj, Enum):
- return obj.value
- elif isinstance(obj, datetime):
- return str(obj)
- # return datetime_util.get_epoch_from_datetime(obj)
- elif isinstance(obj, date):
- return str(obj)
- # return datetime_util.get_epoch_from_date(obj)
- elif isinstance(obj, (set, list, tuple)):
- _list = []
- for item in obj:
- _list.append(SerializationUtil._dump(item))
- return _list
- elif isinstance(obj, dict):
- _dict = {}
- for key in obj:
- key_str = SerializationUtil._dump(key)
- _dict[key_str] = SerializationUtil._dump(obj[key])
- return _dict
- else:
- _dict = {}
- if hasattr(obj, '__dict__'):
- for key in obj.__dict__:
- _dict[key] = SerializationUtil._dump(obj.__dict__[key])
- return _dict
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement