JSON を使用して Python アプリケーションと JavaScript アプリケーション間で通信する場合、日時オブジェクトの処理が困難になることがあります。この記事では、JavaScript でシームレスな逆シリアル化を実現するために、Python の日時オブジェクトを JSON にシリアル化するための最適なアプローチについて説明します。
JSON の日時オブジェクトを効果的に処理するには、json.dumps() の 'default' パラメーターを利用できます。カスタム日付ハンドラー関数を提供して、シリアル化プロセス中に日時オブジェクトを処理できます。
<code class="python">import datetime # Create a date handler date_handler = lambda obj: ( obj.isoformat() if isinstance(obj, (datetime.datetime, datetime.date)) else None ) # Serialize a datetime object json_string = json.dumps(datetime.datetime.now(), default=date_handler) print(json_string) # Output: '"2023-02-13T18:38:48.942613"'</code>
シリアル化プロセスでは、日時オブジェクトが ISO 8601 表現に変換されます。ISO 8601 表現は、JavaScript アプリケーションで広くサポートされている文字列表現です。
さまざまなオブジェクト タイプを処理するために、より包括的なデフォルト ハンドラー関数を定義できます。
<code class="python">def handler(obj): if hasattr(obj, 'isoformat'): return obj.isoformat() # Handle datetime objects elif isinstance(obj, ...): ... # Handle other custom object types else: raise TypeError(f'Object of type {type(obj)} with value {repr(obj)} is not JSON serializable')</code>
この強化されたハンドラーにより、シリアル化中にさまざまなオブジェクト タイプを処理する際の柔軟性がさらに高まります。
以上がJavaScript の逆シリアル化のために Python 日時オブジェクトを JSON にシリアル化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。