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 サイトの他の関連記事を参照してください。