Pythonのdatetimeエラー Object of type datetime is not JSON serializable
“Object of type datetime is not JSON serializable" というエラーメッセージは、PythonのdatetimeオブジェクトをJSONフォーマットに直接変換しようとする際に発生するエラーです。JSONは文字列、数値、リスト、辞書などのプリミティブなデータ型を直接サポートしており、datetimeオブジェクトはそのままでは直列化(シリアライズ)できないため、エラーが発生します。
この問題を解決するには、datetimeオブジェクトをJSONに変換可能な形式に変換する必要があります。一般的な方法は、datetimeオブジェクトを文字列に変換することです。以下はその方法です:
python
import json from datetime import datetime # datetimeオブジェクトを作成 my_datetime = datetime.now() # datetimeオブジェクトを文字列に変換 my_datetime_str = my_datetime.strftime("%Y-%m-%d %H:%M:%S") # JSONに直列化できるデータに変換 data = {"my_datetime": my_datetime_str} # JSONに変換 json_data = json.dumps(data) # json_dataを使用する print(json_data)
このコードでは、strftimeメソッドを使用してdatetimeオブジェクトを指定したフォーマットの文字列に変換し、それをJSONに直列化可能なデータに組み込んでいます。
もしJSONデータを再度Pythonオブジェクトに戻す必要がある場合、逆の操作を行うことができます。つまり、JSON文字列からPythonのディクショナリに復元し、そのディクショナリ内の文字列からdatetimeオブジェクトを再構築することができます。

ディスカッション
コメント一覧
まだ、コメントがありません