datetime
オブジェクトをシリアル化するヘルパー関数を定義し、json.dumpまたはjson.dumpsdefault
のkwargを使用する必要があります。重複する回答へのリンクを含むコメントを参照してください。
datetime
また、タイムゾーン対応オブジェクトをサポートするかどうかを検討する必要があります。また、シリアル化中にタイムゾーンを保持するか、シリアル化の前にUTCに変換するか。
これは、シリアル化の前にUTCに変換することを想定した例です。これは、 python-dateutilライブラリに依存しています。
from dateutil.tz import tzutc
UTC = tzutc()
def serialize_date(dt):
"""
Serialize a date/time value into an ISO8601 text representation
adjusted (if needed) to UTC timezone.
For instance:
>>> serialize_date(datetime(2012, 4, 10, 22, 38, 20, 604391))
'2012-04-10T22:38:20.604391Z'
"""
if dt.tzinfo:
dt = dt.astimezone(UTC).replace(tzinfo=None)
return dt.isoformat() + 'Z'