PythonとJavaScript間のJSON日時 質問する

PythonとJavaScript間のJSON日時 質問する

Pythonからdatetime.datetimeオブジェクトをシリアル形式で送信したいのですが翻訳JSON を使用して JavaScript でデシリアル化します。これを行う最良の方法は何ですか?

ベストアンサー1

これを処理するために、json.dumps に 'default' パラメータを追加できます。

date_handler = lambda obj: (
    obj.isoformat()
    if isinstance(obj, (datetime.datetime, datetime.date))
    else None
)
json.dumps(datetime.datetime.now(), default=date_handler)
'"2010-04-20T20:08:21.634121"'

それは8601 規格フォーマット。

より包括的なデフォルトのハンドラー関数:

def handler(obj):
    if hasattr(obj, 'isoformat'):
        return obj.isoformat()
    elif isinstance(obj, ...):
        return ...
    else:
        raise TypeError, 'Object of type %s with value of %s is not JSON serializable' % (type(obj), repr(obj))

更新: 値だけでなくタイプも出力できるようになりました。
更新: 日付も処理できるようになりました。

おすすめ記事