Python と JavaScript の間で JSON の日時オブジェクトを処理する
Python と JavaScript の間でデータを交換するとき、日時オブジェクトが発生することがよくあります。これらのオブジェクトのシリアル化とシリアル化解除をシームレスに行うために、さまざまなアプローチを採用できます。
推奨される方法の 1 つは、Python の json.dumps の 'default' パラメーターを利用して日時オブジェクトを処理することです。このパラメーターは、datetime オブジェクトをシリアル化可能な形式に変換するハンドラー関数の指定を有効にします。
from datetime import datetime
date_handler = lambda obj: (
obj.isoformat()
if isinstance(obj, (datetime.datetime, datetime.date))
else None
)
json_str = json.dumps(datetime.datetime.now(), default=date_handler)
print(json_str)
このアプローチにより、Python 日時オブジェクトが標準化され、JavaScript によって認識される ISO 8601 形式に変換されます。
"2010-04-20T20:08:21.634121"
あるいは、さまざまなオブジェクトを処理するために、より包括的なデフォルトのハンドラー関数を定義できます。タイプ:
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))
この関数は、'isoformat' 属性の存在をチェックします。これは日時オブジェクトで一般的であり、シリアル化可能な形式に変換します。さらに、必要に応じて他のオブジェクト タイプも処理します。
これらの手法を活用することで、日時オブジェクトを Python から効率的にシリアル化し、JavaScript で逆シリアル化することができ、2 つの言語間のスムーズなデータ交換が容易になります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3