ホームページ >ウェブフロントエンド >jsチュートリアル >Python と JavaScript の間で JSON の日時オブジェクトをシリアル化および逆シリアル化する方法

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

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-19 17:28:301096ブラウズ

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

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

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

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

<code class="python">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)</code>

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

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

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

<code class="python">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))</code>

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

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

以上がPython と JavaScript の間で JSON の日時オブジェクトをシリアル化および逆シリアル化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。