序列化是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态(存在内存中)写入到临时或持久性存储区(硬盘)。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
实现对象的序列化和反序列化在python中有两种方式:json 和 pickle。
其中json用于字符串 和 python数据类型间进行转换,pickle用于python特有的类型 和 python的数据类型间进行转换,pickle是python特有的。
1、JSON序列化:json.dumps()
1 info = { 2 "name":"tj", 3 "age":22 4 } 5 import json 6 print(info) 7 print(type(info)) 8 print(json.dumps(info)) 9 print(type(json.dumps(info))) 10 11 f = open("test.txt","w") 12 # f.write(info) # TypeError: write() argument must be str, not dict 13 f.write(json.dumps(info)) # 正常写入文件 f.write(json.dumps(info)) 等价于 json.dump(info, f) 14 f.close() 15 16 >>> 17 {'name': 'tj', 'age': 22} 18 <class 'dict'> 19 {"name": "tj", "age": 22} 20 <class 'str'>