克服 datetime.datetime 的 JSON 序列化问题
在使用包含日期时间对象的 Python 字典(例如 example['somedate)的过程中'],当尝试将字典序列化为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)
此方法将日期时间对象转换为人类可读的字符串,该字符串可以序列化为字典的一部分。
以上是如何解决 Python 日期时间对象的 JSON 序列化错误?的详细内容。更多信息请关注PHP中文网其他相关文章!