TypeError: Object of type Personal_data is not JSON serializable
时间: 2023-07-16 10:12:44 浏览: 150
这个错误通常是因为你在尝试将一个非可序列化的对象转换为 JSON 格式时出现的。JSON 格式只能接受字符串、数字、布尔值、列表、字典和 None 值。
如果你想将一个自定义对象转换为 JSON 格式,你需要在对象中实现一个 `__json__()` 方法,该方法返回一个可以被序列化的字典。你也可以使用 Python 内置的 `json` 模块中的 `default` 参数来指定一个函数,该函数将在对象无法直接序列化时被调用。
例如,假设你有一个名为 `Personal_data` 的自定义类,你可以这样实现 `__json__()` 方法:
```
class Personal_data:
def __init__(self, name, age):
self.name = name
self.age = age
def __json__(self):
return {'name': self.name, 'age': self.age}
```
这样,当你将一个 `Personal_data` 对象转换为 JSON 格式时,它会自动调用 `__json__()` 方法并返回一个字典。
或者,你可以这样使用 `json` 模块中的 `default` 参数:
```
import json
class Personal_data:
def __init__(self, name, age):
self.name = name
self.age = age
data = Personal_data('John', 30)
json.dumps(data, default=lambda x: x.__dict__)
```
这里我们使用了一个 lambda 函数来将对象转换为一个字典,该字典包含对象的所有属性和值。
阅读全文