2024-07-29 17:30:11 -05:00
|
|
|
import json
|
|
|
|
import decimal
|
|
|
|
import datetime
|
|
|
|
|
|
|
|
class Encoder(json.JSONEncoder):
|
2024-08-15 13:23:25 -05:00
|
|
|
"""Encoder uses json.JSONEncoder and checks for instances of decimal and datetime.
|
|
|
|
Changes decimal.Decimal to int and datetime.datetime to unix timestamp with miliseconds."""
|
2024-07-29 17:30:11 -05:00
|
|
|
def default(self, o):
|
|
|
|
if isinstance(o, decimal.Decimal):
|
|
|
|
return int(o)
|
|
|
|
if isinstance(o, datetime.datetime):
|
|
|
|
return int(o.timestamp() * 1000)
|
|
|
|
return super().default(o)
|