|
|
|
|
|
Python把日期時間序列化為JSON的方法有很多,前面分別介紹過兩種方法Python將日期時間DateTime序列化為JSON和編寫自定義方法將日期時間轉為JSON,本文中,將介紹Python如何使用DjangoJSONEncoder或json_util把日期時間序列化為JSON。
Python編寫自定義方法將日期時間轉為JSON
使用 DjangoJSONEncoder
如果你使用的是 Django,則可以利用 DjangoJSONEncoder
序列化程序來序列化dateTime。
import json
import datetime
from django.core.serializers.json import DjangoJSONEncoder
employee = {
"id": 456,
"name": "William Smith",
"saley": 8000,
"joindate": datetime.datetime.now()
}
print("JSON Data")
print(json.dumps(employee, cls=DjangoJSONEncoder))
輸出:
JSON Data
{"id": 456, "name": "William Smith", "salary": 8000, "joindate": "2020-01-08 18:39:30.161488"}
使用 json_util
該bson模塊具有 json_util
類,我們可以直接使用它來把dateTime轉換為 JSON,而無需進行任何顯式轉換。
讓我們看看例子。
import json
import datetime
from bson import json_util
employee = {
"id": 456,
"name": "William Smith",
"salary": 8000,
"joindate": datetime.datetime.now()
}
jsonData = json.dumps(employee, default=json_util.default)
print(jsonData)
jsonData = """{"id": 456, "name": "William Smith", "saley": 8000, "joindate": "2020-01-08T15:29:52.040435"}"""
# Deserialization
decodedJson = json.loads(jsonData, object_hook=json_util.object_hook)
輸出:
JSON Data
{"id": 456, "name": "William Smith", "salary": 8000, "joindate": "2020-01-08 18:39:30.161488"}
有關日期時間轉換JSON的問題,也可看看這兩篇文章:兩種方法Python將DateTime序列化為JSON,編寫自定義方法將日期時間轉為JSON。