ホームページ >バックエンド開発 >Python チュートリアル >JSON を使用して Python と JavaScript の間で日時オブジェクトを交換する方法

JSON を使用して Python と JavaScript の間で日時オブジェクトを交換する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-10-20 19:17:02606ブラウズ

How to Exchange Datetime Objects Between Python and JavaScript Using JSON?

Python と JavaScript 間の JSON datetime

JSON を使用して Python と JavaScript の間で datetime オブジェクトを交換することは、それぞれの日付と値が異なるため、困難になる可能性があります。時間形式。これに対処するために、カスタムの JSON シリアル化ハンドラーと逆シリアル化ハンドラーを実装できます。

Python では、json.dumps 関数のデフォルト パラメーターを使用してシリアル化ハンドラー関数を定義できます。このハンドラーは、シリアル化中に日時オブジェクトが検出されるたびに呼び出されます。次のコード スニペットは、日時オブジェクトを ISO 8601 形式に変換するハンドラーを作成する方法を示しています:

<code class="python">date_handler = lambda obj: (
    obj.isoformat()
    if isinstance(obj, (datetime.datetime, datetime.date))
    else None
)
json.dumps(datetime.datetime.now(), default=date_handler)</code>

これにより、日時オブジェクトが ISO 8601 形式の文字列として出力されます:

<code class="json">"2010-04-20T20:08:21.634121"</code>

JavaScript では、カスタム逆シリアル化ハンドラーを使用して、受信した ISO 8601 文字列を datetime オブジェクトに変換できます。包括的な逆シリアル化ハンドラー関数は次のようになります。

<code class="javascript">function handler(obj) {
    if (typeof obj === 'string') {
        if (/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/.test(obj)) {
            // ISO 8601 Date string
            return new Date(obj);
        }
    }

    return obj;
}</code>

これらのカスタム ハンドラーを使用すると、JSON を使用して Python と JavaScript の間で日時オブジェクトをシームレスに交換でき、2 つのプラットフォーム間の互換性が確保されます。

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

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