克服“datetime.datetime not JSON可序列化”错误
序列化包含日期时间对象的Python字典时,例如提供的示例中,可能会出现错误:TypeError: datetime.datetime is not JSON
解决方案:
解决此问题的一种方法是在将字典序列化为 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中文网其他相关文章!