序列化

序列化: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))
posted @ 2020-10-30 08:07  Ylinn  阅读(146)  评论(0)    收藏  举报