summaryrefslogtreecommitdiff
path: root/postgresqleu/util/jsonutil.py
blob: 9ba4eecb50072c8cea09046e6c80a02cf791b356 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from datetime import datetime, date
from decimal import Decimal
import json


class JsonSerializer(json.JSONEncoder):
    def default(self, obj):
        if isinstance(obj, datetime) or isinstance(obj, date):
            return obj.isoformat()
        if isinstance(obj, Decimal):
            return str(obj)
        if hasattr(obj, 'json_included_attributes'):
            return dict([(k, getattr(obj, k)) for k in obj.json_included_attributes])
        return json.JSONEncoder.default(self, obj)