cozyweboob/tools/jsonwriter.py
Phyks (Lucas Verney) 905c141c13 No longer hardcoding capabilities
* More logging
* Using getpass in dev environment to ease passwords manipulation
* Dynamic capabilities fetching for each module
2016-09-29 05:09:14 +02:00

28 lines
768 B
Python

import json
from datetime import date, datetime
from decimal import Decimal
class CustomJSONEncoder(json.JSONEncoder):
"""
Custom JSONEncoder to support more types.
"""
def default(self, o):
if isinstance(o, datetime) or isinstance(o, date):
# Serialize datetime objects to ISO dates
return o.isoformat()
elif isinstance(o, Decimal):
# Serialize Decimal objects to string
return str(o)
return json.JSONEncoder.default(self, o)
def pretty_json(foo):
"""
Pretty printing of JSON output, using the custom JSONEncoder.
"""
return json.dumps(foo, sort_keys=True,
indent=4, separators=(',', ': '),
cls=CustomJSONEncoder)