Python と JavaScript 間の JSON 日時
JSON を使用した Python と JavaScript 間の日時オブジェクトの交換は、それぞれの日付と日時が異なるため、困難になる場合があります。時間形式。これに対処するために、カスタム JSON シリアル化ハンドラーと逆シリアル化ハンドラーを実装できます。
Python では、json.dumps 関数のデフォルト パラメーターを使用してシリアル化ハンドラー関数を定義できます。このハンドラーは、シリアル化中に日時オブジェクトが検出されるたびに呼び出されます。次のコード スニペットは、日時オブジェクトを ISO 8601 形式に変換するハンドラーを作成する方法を示しています。
date_handler = lambda obj: (
obj.isoformat()
if isinstance(obj, (datetime.datetime, datetime.date))
else None
)
json.dumps(datetime.datetime.now(), default=date_handler)
これは、日時オブジェクトを ISO 8601 形式の文字列として出力します:
"2010-04-20T20:08:21.634121"
JavaScript では、カスタム逆シリアル化ハンドラーを使用して、受信した ISO 8601 文字列を datetime オブジェクトに変換できます。包括的な逆シリアル化ハンドラー関数は次のようになります。
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;
}
これらのカスタム ハンドラーを使用すると、JSON を使用して Python と JavaScript の間で日時オブジェクトをシームレスに交換でき、2 つのプラットフォーム間の互換性が確保されます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3