ホームページ >バックエンド開発 >Python チュートリアル >JSON を介して Python と JavaScript の間で日時の連続性を維持するにはどうすればよいですか?
JSON を介した Python と JavaScript 間の日時連続性の保持
解決策に入る前に、まず問題を理解しましょう。 Python には datetime.datetime オブジェクトがあり、これをシリアル化し、JSON 経由で JavaScript に送信する必要があります。到着時に、JavaScript は歪みなく datetime オブジェクトに逆シリアル化できる必要があります。
この難題に対処するために、json.dumps の JSON の多用途の 'default' パラメーターが解決策を提供します。このパラメータを使用すると、datetime オブジェクトのカスタム シリアル化ハンドラーを定義できます。
次のハンドラーはシリアル化プロセスを適切に処理します:
<code class="python">date_handler = lambda obj: ( obj.isoformat() if isinstance(obj, (datetime.datetime, datetime.date)) else None )</code>
このハンドラーを適用すると、datetime オブジェクトが ISO 8601 形式に変換されます。シリアル化中:
<code class="python">json.dumps(datetime.datetime.now(), default=date_handler) '"2010-04-20T20:08:21.634121"'</code>
より複雑なシナリオの場合は、包括的なハンドラーが推奨されます:
<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>
このハンドラーは、デバッグを改善するために、オブジェクトの型と値を含む改善されたエラー メッセージも生成します。日付型を含めることで、日付も適切に処理されるようになります。
以上がJSON を介して Python と JavaScript の間で日時の連続性を維持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。