August 2018
Intermediate to advanced
366 pages
10h 14m
English
For this recipe, the following steps are to be performed:
import json import datetime import decimal import types class CustomJSONEncoder(json.JSONEncoder): """JSON Encoder with support for additional types. Supports dates, times, decimals, generators and any custom class that implements __json__ method. """ def default(self, obj): if hasattr(obj, '__json__') and callable(obj.__json__): return obj.__json__() elif isinstance(obj, (datetime.datetime, datetime.time)): return obj.replace(microsecond=0).isoformat() elif isinstance(obj, datetime.date): return obj.isoformat() elif isinstance(obj, decimal.Decimal): return ...