没有使用json.dumps函数,却报错Object of type Personal_data is not JSON serializable
时间: 2023-06-27 08:07:52 浏览: 95
Python json 错误xx is not JSON serializable解决办法
这个错误通常是因为你在将 Python 对象转换为 JSON 字符串时,Python 对象中包含了不支持序列化的数据类型,比如自定义的类、函数等。要解决这个问题,你可以使用 `default` 参数来指定一个自定义的序列化函数,将不支持序列化的对象转换为支持序列化的数据类型。
例如,如果你的代码类似于以下代码:
```python
import json
class Personal_data:
def __init__(self, name, age):
self.name = name
self.age = age
data = Personal_data("Tom", 20)
json_data = json.dumps(data)
```
你可以定义一个 `default` 函数将 `Personal_data` 类型转换为字典类型,再进行序列化:
```python
def default(obj):
if isinstance(obj, Personal_data):
return {'name': obj.name, 'age': obj.age}
raise TypeError(f'Object of type {type(obj)} is not JSON serializable')
json_data = json.dumps(data, default=default)
```
这样就可以成功将 `Personal_data` 类型转换为 JSON 字符串了。
阅读全文