Например, ваш вывод:
MongoDB
Если вы используете MongoDB, вы можете использовать bson
из встроенных утилит pymongo, чтобы помочь с сериализацией json:
http://api.mongodb.org/python/1.10.1/api/bson/json_util.html
Пример использования (сериализация):
from bson import json_util
import json
r = [{
'recCreatedTimeUTC': datetime.datetime(2019, 4, 24, 20, 40, 57),
'recUpdatedTimeUTC': datetime.datetime(2019, 4, 24, 20, 40, 57),
'userID': 92
}]
json.dumps(r, default=json_util.default)
выход:
[
{
"recCreatedTimeUTC": {
"$date": 1556138457000
},
"recUpdatedTimeUTC": {
"$date": 1556138457000
},
"userID": 92
}
]
Джанго
Если вы используете Django, он предоставляет собственный сериализатор DjangoJSONEncoder, который правильно обрабатывает объекты даты и времени.
См. https://docs.djangoproject.com/en/dev/topics/serialization/#djangojsonencoder
Пользовательское значение по умолчанию
Если вы хотите использовать пользовательское значение по умолчанию для кодировщика, вы можете сделать это следующим образом:
import datetime
import json
r = []
r = [{
'recCreatedTimeUTC': datetime.datetime(2019, 4, 24, 20, 40, 57),
'recUpdatedTimeUTC': datetime.datetime(2019, 4, 24, 20, 40, 57),
'userID': 92
}]
def default(o):
if isinstance(o, (datetime.date, datetime.datetime)):
return o.isoformat()
print(json.dumps(r, indent=2, default=default))
выход:
[
{
"recCreatedTimeUTC": "2019-04-24T20:40:57",
"recUpdatedTimeUTC": "2019-04-24T20:40:57",
"userID": 92
}
]