ホームページ >バックエンド開発 >Python チュートリアル >Python の datetime オブジェクトでの JSON シリアル化エラーを解決するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。