Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.56 KB | None | 0 0
  1. from datetime import datetime, date
  2. from decimal import Decimal
  3. from enum import Enum
  4.  
  5.  
  6. class SerializationUtil(object):
  7. @staticmethod
  8. def object_to_dict(obj):
  9. return SerializationUtil._dump(obj)
  10.  
  11. @staticmethod
  12. def _dump(obj):
  13.  
  14. if isinstance(obj, str) or isinstance(obj, complex):
  15. return str(obj)
  16.  
  17. if isinstance(obj, (int, float, bool)):
  18. return obj
  19.  
  20. if obj is None:
  21. return None
  22.  
  23. # elif isinstance(obj, bytes):
  24. # return string_util.bytes_to_str(obj)
  25.  
  26. elif isinstance(obj, Decimal):
  27. return float(str(obj))
  28.  
  29. elif isinstance(obj, Enum):
  30. return obj.value
  31.  
  32. elif isinstance(obj, datetime):
  33. return str(obj)
  34. # return datetime_util.get_epoch_from_datetime(obj)
  35.  
  36. elif isinstance(obj, date):
  37. return str(obj)
  38. # return datetime_util.get_epoch_from_date(obj)
  39.  
  40. elif isinstance(obj, (set, list, tuple)):
  41. _list = []
  42. for item in obj:
  43. _list.append(SerializationUtil._dump(item))
  44. return _list
  45.  
  46. elif isinstance(obj, dict):
  47. _dict = {}
  48. for key in obj:
  49. key_str = SerializationUtil._dump(key)
  50. _dict[key_str] = SerializationUtil._dump(obj[key])
  51. return _dict
  52.  
  53. else:
  54. _dict = {}
  55. if hasattr(obj, '__dict__'):
  56. for key in obj.__dict__:
  57. _dict[key] = SerializationUtil._dump(obj.__dict__[key])
  58. return _dict
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement