ホームページ >バックエンド開発 >Python チュートリアル >Python で「datetime.datetime は JSON シリアル化可能ではありません」エラーを解決する方法?

Python で「datetime.datetime は JSON シリアル化可能ではありません」エラーを解決する方法?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-11 01:58:13520ブラウズ

How to Solve the

「datetime.datetime not JSON シリアル化可能」エラーを克服する

提供された例のように、datetime オブジェクトを含む Python ディクショナリをシリアル化する場合、エラーが発生する可能性があります: TypeError: datetime.datetime is not JSON serializable.

解決策:

この問題を解決する 1 つのアプローチは、辞書を JSON にシリアル化するときにカスタムのデフォルト関数を指定することです。この関数は、日時オブジェクトなどのシリアル化不可能なオブジェクトの JSON 互換形式への変換を処理します。

import json

sample = {}
sample['title'] = "String"
sample['somedate'] = datetime.datetime(2012, 8, 8, 21, 46, 24, 862000)

def datetime_handler(x):
    if isinstance(x, datetime.datetime):
        return x.isoformat()
    raise TypeError("Unknown type")

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

このソリューションでは、日時オブジェクトを文字列表現に変換するために datetime_handler 関数が定義されています。 isoformat() メソッドを使用します。この文字列表現は、逆シリアル化中に適切に処理できます。

このようなカスタムのデフォルト関数を提供すると、日時オブジェクトを含む辞書を JSON シリアル化可能な形式に正常に変換できます。

以上がPython で「datetime.datetime は JSON シリアル化可能ではありません」エラーを解決する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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