支持datetime、date和bson.objectid的json.dumps
asjson的Python项目详细描述
支持datetime、date和bson.ObjectId的json.dumps
>>> from datetime import datetime, date, timedelta, timezone >>> from decimal import Decimal >>> from bson import ObjectId >>> import asjson>>> data = { ... 'time': [ ... date(2018, 3, 6), ... datetime(2018, 3, 6, 9, 38, 0, 1), ... datetime(2018, 3, 6, 9, 38, 0, 1).replace( ... tzinfo=timezone.utc), ... ], ... 'decimal': Decimal('3.14'), ... 'objectid': ObjectId('a' * 24), ... }
我们可以使所有值都适合json 将结构转储到字符串。 它在某些情况下可能会有帮助,例如通过它 进入数据库json字段
>>> asjson.encode(data) {'time': ['2018-03-06', '2018-03-06T09:38:00.000001', '2018-03-06T09:38:00.000001+00:00'], 'decimal': '3.14', 'objectid': 'aaaaaaaaaaaaaaaaaaaaaaaa'}
对于转储到字符串,我们可以使用 与标准json.dumps相同的参数加上debug 这只是一条捷径 json.dumps(…,indent=4,sort=true,确保askii=false):
>>> print(asjson.dumps(data, debug=True)) { "decimal": "3.14", "objectid": "aaaaaaaaaaaaaaaaaaaaaaaa", "time": [ "2018-03-06", "2018-03-06T09:38:00.000001", "2018-03-06T09:38:00.000001+00:00" ] }