首页 >后端开发 >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可序列化”错误

序列化包含日期时间对象的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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn