入的object_hook函数负责把dict转换为Student实例:
时间: 2024-09-10 15:16:42 浏览: 41
`object_hook` 函数是一个用于自定义序列化和反序列化的钩子,在 Python 的 `json` 模块中,当你设置了一个 `default` 或 `object_hook` 参数给 `json.loads()` 函数时,它会在解析 JSON 字符串时被调用。如果你传递了一个 `object_hook`,这个函数会接收到一个字典,并返回一个新的对象,这个对象会被替换掉原始字典,通常用于处理复杂的数据结构,如将 JSON 中表示的学生信息转换成对应的 `Student` 对象。
例如,假设你有一个简单的 Student 类:
```python
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
def student_from_dict(dct):
return Student(dct['name'], dct['age'])
# 使用 object_hook
data_json = '{"name": "张三", "age": 18}'
student = json.loads(data_json, object_hook=student_from_dict)
```
在这个例子中,`student_from_dict` 就是 `object_hook`,它接收一个字典并创建一个 `Student` 实例。
阅读全文