1 import json, pickle
2 #json 序列化与反序列化
3 list1 = [1, 2, 3]
4 #正常情况下文件只能写入二进制或者字符串,需要将其他类型数据写入文件需要将其序列化;json序列化的结果为字符串;json的结果可以跨语言使用
5 with open("json.txt", "w", encoding="utf-8") as f:
6 f.write(json.dumps(list1))
7 #序列化以后的文件想读取其中内容需要反序列化
8 with open("json.txt", "r", encoding="utf-8") as f:
9 json_res = json.loads(f.read())
10 print(type(json_res), json_res)
11 #pickle序列化与反序列化。 json只能将列表 字典等标准对象进行序列化,类似下面函数进行序列化json就会报错;此时就需要使用pickle进行序列化和反序列化,pickle序列化的结果为二进制,pickle语法只能在python语言使用
12 def hello():
13 print("hello world")
14 dict1 = {"func":hello}
15 with open("pickle.txt", "wb") as f:
16 f.write(pickle.dumps(dict1)) #等价于pickle.dump(dict1, f)
17 with open("pickle.txt", "rb") as f:
18 pickle_res = pickle.loads(f.read()) #等价于pickle.load(f)
19 print(type(pickle_res), pickle_res)
20 #建议:对象的dump和load都应当dump一次和load一次