「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Python と JavaScript の間で JSON の日時オブジェクトをシリアル化および逆シリアル化する方法

Python と JavaScript の間で JSON の日時オブジェクトをシリアル化および逆シリアル化する方法

2024 年 11 月 8 日に公開
ブラウズ:638

How to Serialize and Deserialize Datetime Objects in JSON Between Python and JavaScript

Python と JavaScript の間で JSON の日時オブジェクトを処理する

Python と JavaScript の間でデータを交換するとき、日時オブジェクトが発生することがよくあります。これらのオブジェクトのシリアル化とシリアル化解除をシームレスに行うために、さまざまなアプローチを採用できます。

推奨される方法の 1 つは、Python の json.dumps の 'default' パラメーターを利用して日時オブジェクトを処理することです。このパラメーターは、datetime オブジェクトをシリアル化可能な形式に変換するハンドラー関数の指定を有効にします。

from datetime import datetime

date_handler = lambda obj: (
    obj.isoformat()
    if isinstance(obj, (datetime.datetime, datetime.date))
    else None
)
json_str = json.dumps(datetime.datetime.now(), default=date_handler)
print(json_str)

このアプローチにより、Python 日時オブジェクトが標準化され、JavaScript によって認識される ISO 8601 形式に変換されます。

"2010-04-20T20:08:21.634121"

あるいは、さまざまなオブジェクトを処理するために、より包括的なデフォルトのハンドラー関数を定義できます。タイプ:

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))

この関数は、'isoformat' 属性の存在をチェックします。これは日時オブジェクトで一般的であり、シリアル化可能な形式に変換します。さらに、必要に応じて他のオブジェクト タイプも処理します。

これらの手法を活用することで、日時オブジェクトを Python から効率的にシリアル化し、JavaScript で逆シリアル化することができ、2 つの言語間のスムーズなデータ交換が容易になります。

リリースステートメント この記事は次の場所に転載されています: 1729330037 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3