JSON を使用して Python と JavaScript の間で通信する場合、datetime オブジェクトの処理で問題が発生します。これに対処するために、Python はカスタマイズ可能なデフォルト ハンドラーを提供します。これを json.dumps と統合すると、これらのオブジェクトの適切なシリアル化と逆シリアル化が可能になります。
Python では、次のハンドラー関数は ISO 8601 形式を利用して日時を変換します。オブジェクトを JSON 準拠の文字列に変換します:
<code class="python">date_handler = lambda obj: ( obj.isoformat() if isinstance(obj, (datetime.datetime, datetime.date)) else None )</code>
これにより、結果の JSON 文字列が JavaScript で簡単に解析できる形式になります。
ただし、ISO 8601 であることを考慮することが重要です。 format はオブジェクトのタイプを伝えません。より包括的な処理を行うために、より堅牢なハンドラー関数を定義できます。
<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>
この拡張ハンドラーは、提供日期值的格式化、还明确了对象の型、JavaScript 内での使用が容易です。反順序列化。
以上がJavaScript を使用したシームレスな JSON 交換のために Python 日時オブジェクトをシリアル化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。