ホームページ >バックエンド開発 >Python チュートリアル >Python の datetime オブジェクトでの JSON シリアル化エラーを解決するにはどうすればよいですか?

Python の datetime オブジェクトでの JSON シリアル化エラーを解決するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-04 22:06:151018ブラウズ

How Do I Solve JSON Serialization Errors with Python's datetime Objects?

datetime.datetime による JSON シリアル化の問題を解決する

sample['somedate などの datetime オブジェクトを含む Python ディクショナリを操作する過程で'] の場合、辞書をシリアル化しようとすると次のエラーが発生する場合があります。 JSON:

TypeError: datetime.datetime(2012, 8, 8, 21, 46, 24, 862000) is not JSON serializable

この問題に対する主な解決策は、日時オブジェクトを処理するカスタムのシリアル化関数を提供することです。一般的なアプローチには、json.dumps() 関数のデフォルト パラメーターを使用することが含まれます。これは、オブジェクトを入力として受け取り、シリアル化可能な表現を返す関数を受け入れます。

このシナリオでは、単純な実装は次のようになります。

def default(obj):
    if isinstance(obj, datetime.datetime):
        return str(obj)
    # Other logic to handle other types (if needed)

json_string = json.dumps(sample, default=default)

この関数は、シリアル化の前に日時オブジェクトを文字列表現に変換します。あるいは、Python の組み込み ctime() メソッドを利用することもできます。

sample['somedate'] = sample['somedate'].ctime()
json_string = json.dumps(sample)

このアプローチでは、datetime オブジェクトを人間が判読できる文字列に変換し、辞書の一部としてシリアル化できます。

以上がPython の datetime オブジェクトでの JSON シリアル化エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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