报错了TypeError: Object of type User is not JSON serializable
时间: 2024-06-14 12:07:31 浏览: 21
报错TypeError: Object of type User is not JSON serializable是因为User对象无法直接被转换为JSON格式。要解决这个问题,你可以通过自定义JSONEncoder来处理User对象的序列化。
下面是一个示例代码,演示了如何使用自定义JSONEncoder来序列化User对象:
```python
import json
class User:
def __init__(self, name, age):
self.name = name
self.age = age
class UserEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, User):
return {'name': obj.name, 'age': obj.age}
return super().default(obj)
user = User('John', 25)
json_data = json.dumps(user, cls=UserEncoder)
print(json_data)
```
在上面的代码中,我们定义了一个User类和一个UserEncoder类。UserEncoder类继承自json.JSONEncoder,并重写了default方法。在default方法中,我们判断如果对象是User类型,则将其转换为字典形式,然后再进行序列化。
通过运行上面的代码,你将得到以下输出:
```shell
{"name": "John", "age": 25}
```
这样,你就成功地将User对象转换为了JSON格式。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)