ホームページ  >  記事  >  バックエンド開発  >  JSON を介して Python と JavaScript の間で日時の連続性を維持するにはどうすればよいですか?

JSON を介して Python と JavaScript の間で日時の連続性を維持するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-20 19:13:30559ブラウズ

How to Preserve Datetime Continuity Between Python and JavaScript via JSON?

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

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