python flask框架教程,如何安装flask
Python3.7中的Picklejson模块
一、什么是序列化?
序列化是将对象的状态转换为可以保留或传输的格式的过程。与序列化相反,它是将流反序列化为对象。这两个过程的结合使得数据的存储和传输变得容易。
2.序列化pickle模块
泡菜模块是做什么用的?
用于访问结构化数据。在特定于python的类型和python数据类型之间转换。
可以通过选择存储的数据类型。
python支持的所有原生类型:boolean、integer、浮点数、复数、string、byte、None;
由任何本机类型组成的列表、元组、字典和集合
函数,类,类的例子。
酸洗模块的常用方法
Pickle提供了四个函数:转储、转储、加载和装载。
pickle.dumps(obj(,protocol)))
作用:将obj对象序列化为字符串格式,而不是保存到文件中。(将封装的对象作为字节对象返回。不需要写入文件)。
参数描述:
要序列化的对象。
协议:如果省略此项,默认值为0。如果是负数或HIGHEST_PROTOCOL,则使用最高的协议版本。
# dumps函数
# dumps将数据转换成只有python语言才能识别的特殊形式的字符串。
进口提货
信息={
姓名:薇薇安,
年龄:20,
身高:157英尺
}
数据=泡菜。# dumps(info) dumps将数据转换为字节格式
是,打印(数据)
#输出
# b \ X80 \ x03 } q \ x00(x \ x04(x00)x00 name q \ x01x \ x06(x00(x00)x00 vivianq \ x02x(x03)
pickle.dump(obj,file,protocol=None,)
功能:将obj对象序列化为打开的文件并保存。
参数描述:
必需的参数obj表示要封装的对象。
必选参数file表示obj要写的文件对象,文件必须以二进制可写模式打开。也就是说,是“wb”
注意:Dictionary a={name:Tom , age:22}保存在pickle.dump上的本地文件中,保存数据的结构是字典,但普通file.write写入文件的是字符串。
#转储功能
# dump将数据转换成只有python语言才能识别的特殊形式的字符串,并写入文件。
进口提货
信息={
姓名:薇薇安,
年龄:20,
身高:157英尺
}
withopen(information.pkl),(wb))作为f:
pickle.dump(info,f)).
pickle.loads(string)).
功能:反序列化。从字符串中读取预先序列化的obj对象(从byte对象中读取并返回封装的对象)。
参数描述:
字符串:文件名。
# loads函数
# loads将pickle数据转换为python数据结构
进口提货
信息={
姓名:薇薇安,
年龄:20,
身高:157英尺
}
data1=pickle.dumps(info)
是,打印(数据1)
DATA2=pickle.loads(data1))。
是,打印(数据2)
#输出
# b \ X80 \ x03 } q \ x00(x \ x04(x00)x00 name q \ x01x \ x06(x00(x00)x00 vivianq \ x02x(x03)
# { 姓名:薇薇安,年龄:20,身高:157}
pickle.load(文件).
功能:反序列化加载对象,从文件中读取数据,序列化并读取文件中的对象。
参数描述:
文件:文件名。必需的参数文件必须以二进制可读模式“rb”打开。其他可选参数。
#加载
功能
# load从数据文件中读取数据,并将其转换为python的数据结构
进口泡菜
用open(information.pkl , rb )作为f:
print(pickle.load(f))
#输出
# { 姓名:薇薇安,年龄:20,身高:157}
3.序列化模块json
json模块是用来做什么的?
用于访问结构化数据。用于将字符串转换为Python数据类型。
json可以存储的数据类型
仅支持int\str\list\tuple\dict
json模块中的常用方法
Json提供了四个函数:Dump、Dump、Loads和Load。
字典转换成json字符串
文件中只能写字符串,但是字典可以转换成json字符串,JSON字符串是字符串,可以存储在文件中。
# json.dumps以一种特殊的形式将数据转换成所有编程语言都能识别的字符串。
导入json
信息={
姓名:薇薇安,
年龄:20,
身高:157英尺
}
J_str=json.dumps(info) #注意,json转储生成的是字符串,而不是字节
打印(j_str)
打印(类型(j_str))
#输出
# { 姓名:薇薇安,年龄:20,身高:157}
#
#在使用之前。dump()方法,您应该在写入文件之前打开它。
用open( message . JSON , w )作为f:
json.dump(info,f)
json字符串转换成字典
# json.loads用于解码json数据。此函数返回Python字段的数据类型。
print(json.loads(j_str))
print(type(json.loads(j_str)))
#输出
# { 姓名:薇薇安,年龄:20,身高:157}
#
用open( message . JSON )作为f:
data=json.load(f)
打印(数据)
打印(类型(数据))
# { 姓名:薇薇安,年龄:20,身高:157}
#
四、json vs pickle
Json:
优点:跨语言(json可以用于不同语言之间的数据传输)和体积小。
缺点:只能支持int\str\list\tuple\dict。
泡菜:
优点:专为python设计,支持所有python数据类型。
缺点:只能在python中使用,占用大量空间存储数据。
动词(verb的缩写)负载与负载
Load和loads都实现“反序列化”,区别在于:
内存对象的加载
也就是将Python内置数据序列化成字符串。例如,用json.dumps序列化的对象d_json=json.dumps ({a: 1, b: 2}),其中d_json是字符串 {b: 2, a: 1}
D=json.loads (d _ json) # {b: 2, a: 1},使用load重新反序列化为dict
对于加载文件句柄
如果本地有json文件a.json,可以是d=json.load(open(a.json ))
相应地,dump就是将内置类型序列化为json对象,然后写入文件。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。