Guest User

Untitled

a guest
Jan 22nd, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. from datetime import date, datetime, time
  2. from decimal import Decimal
  3.  
  4. def to_json(python_object):
  5. """
  6. Adding in custom serialization for Date & Decimal objects.
  7.  
  8. >>> import json
  9. >>> from datetime import date, datetime, time
  10. >>> from decimal import Decimal
  11. >>> json.dumps({'adatetime': datetime(2012, 1, 1, 12, 1, 1)}, default=to_json)
  12. '{"adatetime": "2012-01-01 12:01:01"}'
  13. >>> json.dumps({'adate': date(2012, 1, 1)}, default=to_json)
  14. '{"adate": "2012-01-01"}'
  15. >>> json.dumps({'atime': time(12, 1, 1)}, default=to_json)
  16. '{"atime": "12:01:01"}'
  17. >>> json.dumps({'adecimal': Decimal('1.01')}, default=to_json)
  18. '{"adecimal": "1.01"}'
  19. """
  20. if (isinstance(python_object, date)
  21. or isinstance(python_object, datetime)
  22. or isinstance(python_object, time)):
  23. return str(python_object)
  24. if isinstance(python_object, Decimal):
  25. return python_object.to_eng_string()
  26. raise TypeError(repr(python_object) + ' is not JSON serializable')
  27.  
  28. if __name__ == '__main__':
  29. import doctest
  30. doctest.testmod()
Add Comment
Please, Sign In to add comment