python json序列化和反序列化,json对象序列化
这篇文章介绍了计算机编程语言的序列化模块数据与泡菜,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
序列化把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在计算机编程语言中叫腌制,在其他语言中也被称之为序列化,编组,扁平化。
一、JSON序列化
使用数据序列化能够达到跨平台传输数据的目的。
跨平台性质,它可以序列化字典/列表/字符串/整数/浮点/布尔值/无数据类型。
序列化成数据文本格式。
1、json数据类型和python数据类型对应关系表:
数据类型——Python类型
{}——dict[]——list,tuplestring——str,unicode520.13——int,long,float true/false —— true/false null —— none
2、相关函数
(2)序列化
序列化成字符串:json .dumps序列化字符串到文件中:json .dump(JSON _ obj,write_file,[,protocol])(2)反序列化
反序列化成对象:json .loads从文件读流中反序列化成对象:json .load(读文件)
3、举例:
导入数据
struct_data={name: json , age: 23, sex: male}
print(struct_data,type(struct_data)) # { 姓名: json ,年龄 : 23,性别 : 男性 }
# 序列化
data=json.dumps(struct_data)
print(data,type(data)) # { 姓名: json ,年龄 : 23,性别 : 男性 }
# 反序列化
data=json.loads(数据)
print(data,type(data)) # { 姓名: json ,年龄 : 23,性别 : 男性 }
磁盘文件操作
导入数据
# 序列化,写入磁盘
带打开( Json序列化对象json , w .作为fw:
json.dump(struct_data,fw)
# 从文件读取,反序列化
带打开( Json序列化对象. JSON’)作为fr:
data=json.load(fr)
打印(数据)# { 姓名: json ,年龄 : 23,性别 : 男性 }
二、Pickle序列化
泡菜无法跨平台,序列化之后只有大蟒识别。但是可以序列化计算机编程语言的任意数据类型,包括函数和对象。
数据模块和皮克勒模块都有转储、转储、装载、装载四种方法,而且用法一样。但是序列化成二进制形式。
1、举例:
进口泡菜
struct_data={name: json , age: 23, sex: male}
print(struct_data,type(struct_data)) # { 姓名: json ,年龄 : 23,性别 : 男性 }
data=pickle.dumps(struct_data)
print(data,type(data))# b X80 x03 } q x00(X x04 x00 x00 name q x01X x04 x00 x00 jsonq x02X x03 x00 x03K x17X x03 x00 x00 x00 sexq x04X x04 x00 x00 x00 maleq x05u
数据=pickle.loads(数据)
print(data,type(data)) # { 姓名: json ,年龄 : 23,性别 : 男性} 字典
# 序列化(注意:泡菜模块需要使用二进制存储,即wb 模式存储)
带开口(泡菜序列化对象pkl , wb )作为fw:
泡菜.转储(结构数据,固件)
# 反序列化
带开口(泡菜序列化对象pkl , rb )作为fr:
pickle=pickle.load(fr)
打印(数据)# { 姓名: json ,年龄 : 23,性别 : 男性 }
2、base64与pickle联合使用
str=Hello World #加密前,原始数据
a=base64。b 64编码(泡菜。转储(str).decode() #加密
print(a)# gANYCwAAAEhlbGxvIFdvcmxkcQAu
b=泡菜。负载(base64。b64解码(a . encode()))#解密
打印(二)
到此这篇关于计算机编程语言序列化模块数据与泡菜的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持盛行信息技术软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。