python常用序列化和反序列化

什么叫序列化?
我们把变量从内存中变成可存储或传输的过程称之为序列化

import json
dic = {'a':123,'b':234,'c':456}
print(type(dic))
a = json.dumps(dic)
print(a,type(a))
d = json.loads(a)
print(d)

通过json模块的dumps和loads就可以完成python中字典数据和json数据的互相转化,通过type()函数也能看到json数据在python中其实是一个str的数据类型,这里在后续的接口数据处理和接口自动化中经常会需要用到。
那么json数据和字典到底有什么区别呢
首先 python 里面的基础数据类型有:int、str、 float、list、bool、tuple、 dict、set 这几种类型,里面没 json 这种数据类型
json 本质上还是字符串,只是按 key:value 这种键值对的格式来的字符串
虽然都是键值对的写法,但是实际的数据类型是不同的,一般为了把同样数据放在不同的代码中进行处理,需要把数据进行统一格式化进行处理。
在不同的开发语言中,大家都遵循一个规范,按一个标准的格式去传输数据,于是就有就 json 这种国际化规范的数据类型。

import pickle
dic = {'a':123,'b':234,'c':456}
p_str = pickle.dumps(dic)
print(p_str)

d_ = pickle.loads(p_str)
print(d_)
d = {'k':123,'l':242}
dw ='sdfsdf'
with open('xx','wb') as p:
    pickle.dump(d,p)
#把字典数据序列化为json文件
with open('xx.json','w') as j:
    json.dump(dic,j)

序列化:
dumps:序列化
dump:写入文件
load:从文件中加载
loads:反序列化

猜你喜欢

转载自www.cnblogs.com/yeyeyeyey/p/12100741.html