序列化

把变量从内存中变成可存储或传输的过程称之为序列化;
把变量从序列化的对象重新读到内存里,称之为反序列化。


json.dumps()

对内容进行编码(序列化),返回str

  • ensure_ascii=False:返回值可以包含非ASCII字符
  • indent=4:格式化输出

    json.loads()

    把json反序列化成python对象 ```python import json

data = { ‘name’: ‘zaygee’, ‘age’: ‘24’ } json_info = json.dumps(data) print(“原始数据:”, repr(data)) print(“json对象:”, json_info) # 字典类型转化为json对象 data2 = json.loads(json_info) print(“data2[‘name’]:”, data2[‘name’]) # json对象转化为字典类型

  1. 假如处理的是文件,可以使用json.dumpjson.load来编码和解码
  2. ```python
  3. import json
  4. # 写入数据
  5. with open('test.json','w') as f:
  6. json.dump(data, f)
  7. # 读取数据
  8. with open('test.json','r') as f:
  9. json.load(f)

将一个类序列化

通过dumps的default参数,将任意一个对象变成可序列化为JSON的对象。

  1. class Student:
  2. def __init__(self, name, age):
  3. self.name = name
  4. self.age = age
  5. s = Student("zaygee", 25)
  6. print(json.dumps(s, default=lambda obj: obj.__dict__))