序列化
序列化:json(推荐使用)
json是各种语言通用的
两组四个方法:
1、dumps loads
dumps 将对象转换(序列化)成字符串
把list转换成str
import json
lst = [1, 2, 3, 4, 5]
print(json.dumps(lst), type(json.dumps(lst)))
loads 将字符串转换(反序列化)成对象
把list转换成str再转回list
import json
lst = [1, 2, 3, 4, 5]
str_lst = json.dumps(lst)
lst1 = json.loads(str_lst)
print(lst1, type(lst1))
dumps 将对象转换(序列化)成字符串
把dict转换成str
import json
dic = {"k1": 1, "k2": 2}
str_dic = json.dumps(dic) # 序列化
print(str_dic, type(str_dic))
loads 将字符串转换(反序列化)成对象
把dict转换成str再转回dict
import json
dic = {"k1": 1, "k2": 2}
str_dic = json.dumps(dic)
dic1 = json.loads(str_dic) # 反序列
print(dic1, type(dic1))
2、dump load
dump:将对象转换(序列化)成字符串,写入文件
同时写多个内容 进行序列化:
import json
lst = [1, 2, 3, 4, 5, 6]
f = open("info", "w", encoding="utf-8")
f.write(json.dumps(lst) + "\n")
f.write(json.dumps(lst) + "\n")
f.write(json.dumps(lst) + "\n")
f.write(json.dumps(lst) + "\n")
f.write(json.dumps(lst) + "\n")
f.close()
load:文件中字符串(反序列化)对象,写入文件
同时读多个内容进行反序列:
import json
f1 = open("info", "r", encoding="utf-8")
for i in f1:
l = json.loads(i)
print(l)
f1.close()
序列化:pickle(python所有对象进行转换)
python自带的(只有Python可以用)
两组四个方法:
1、dumps loads
将对象转换成类似字节
import pickle
lst = [1, 2, 3, 4, 5]
t_lst = pickle.dumps(lst)
print(t_lst)
将对象转换成类似字节再转回对象
import pickle
lst = [1, 2, 3, 4, 5]
t_lst = pickle.dumps(lst)
print(pickle.loads(t_lst))
将对象(dict)转换成类似字节
import pickle
dic = {"k1": 1}
t_list = pickle.dumps(dic)
print(t_list)
print(pickle.loads(t_list))
将对象(函数)转换成类似字节
import pickle
def func():
print(111)
fun = pickle.dumps(func)
print(fun)
pickle.loads(fun)()
2、dump load
import pickle
lst = [1, 2, 3, "牛批"]
pickle.dump(lst, open("info", "wb"))
import pickle
print(pickle.load(open("info", "rb")))
import pickle
dic = {"k1": 1}
pickle.dump(dic, open("info", "ab"))
import pickle
dic = {"1": 2}
f = open("info", "wb")
s = "\n".encode("utf-8")
f.write(pickle.dumps(dic) + s)
f.write(pickle.dumps(dic) + s)
f.write(pickle.dumps(dic) + s)
f.close()
f1 = open("info", "rb")
for i in f1:
print(pickle.loads(i))

浙公网安备 33010602011771号