Python-序列化
序列化
json(各种语言都拥有)
json是各种语言共有的,是各种语言用来交互的
dumps loads -- 用于网络传输
dump load -- 用于文件存储
将数据类型转换成字符串(序列化),将字符串转成原数据类型(反序列)
能够序列:字典,列表,元组序列后变成列表
import json
dic = {"key":1}
s = json.dumps(dic)
print(s,type(s))
# {"key": 1} <class 'str'>
d = json.loads(s)
print(d,type(d))
# {'key': 1} <class 'dict'>
import json
dic = {"key":1}
# 将原数据类型转换成字符串类型,写到文件中
json.dump(dic,open("a","a",encoding="utf-8"))
# 将文件中字符串转换成原数据类型
print(json.load(open("a","r",encoding="utf-8"))["key"])
import json
dic = {"key":'爱人'}
f = open("a","a",encoding="utf-8")
f.write(json.dumps(dic,ensur_ascii=False)+"\n")
f.write(json.dumps(dic)+"\n")
f.write(json.dumps(dic)+"\n")
f.write(json.dumps(dic)+"\n")
f.write(json.dumps(dic)+"\n")
f1 = open("a","r",encoding="utf-8")
for i in f1:
print(json.loads(i),type(json.loads(i)))
# {'key': '爱人'} <class 'dict'>
# {'key': '爱人'} <class 'dict'>
# {'key': '爱人'} <class 'dict'>
# {'key': '爱人'} <class 'dict'>
# {'key': '爱人'} <class 'dict'>
import json
dic = {"meet":27,"太白":30,"alex":36,"wusir":33}
print(json.dumps(dic))
# {"meet": 27, "\u592a\u767d": 30, "alex": 36, "wusir": 33}
print(json.dumps(dic,ensuer_ascii=False))
# {"meet": 27, "太白": 30, "alex": 36, "wusir": 33}
print(json.dumps(dic,ensure=False,sort_keys=True))
# {"alex": 36, "meet": 27, "wusir": 33, "太白": 30}
pickle(只有python有)
只有python有,几乎可以序列python中所有数据类型,匿名函数
import pickle
def func():
print(1)
a = pickle.dumps(func)
print(pickle.loads())
# 最后结果为1
浙公网安备 33010602011771号