TypeError: Object of type datetime is not JSON serializable
时间: 2024-03-05 16:48:07 浏览: 141
这个错误通常是因为 datetime 类型的变量不能直接被序列化为 JSON 格式。可以使用以下方法解决:
1. 将 datetime 类型的变量转换为字符串类型,再进行序列化。例如,使用 `datetime.strftime()` 方法将 datetime 对象转换为字符串类型。
2. 自定义 JSONEncoder 类,重写 `default()` 方法,将 datetime 类型的变量转换为字符串类型。然后在使用 `json.dumps()` 序列化时指定 `cls` 参数为自定义的 JSONEncoder 类。
下面是一个示例代码,用于将 datetime 类型的变量转换为字符串类型:
```python
import json
from datetime import datetime
class CustomJSONEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, datetime):
return obj.strftime('%Y-%m-%d %H:%M:%S')
return json.JSONEncoder.default(self, obj)
# 将 datetime 类型的变量转换为字符串类型
now = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
# 序列化时指定 cls 参数为自定义的 JSONEncoder 类
json.dumps({'now': now}, cls=CustomJSONEncoder)
```
希望这能帮助到您!
阅读全文