22、序列化和反序列化

序列化和反序列化

概念
 序列化:将内存中的变量序列化后存储到硬盘或者通过网络传输到不通平台,类似于encoding过程。python中是将各种数据类型转换为字符串
 反序列化:将硬盘中的数据反序列化成相应的数据类型并加载到内存中。将字符串转换为python中的数据类型
序列化的作用
1.  将内存中数据序列化后存储到硬盘
2. 将内存中数据序列化后通过网络传输给不同平台(java)
3. 往往一个应用需要不同的语言程序来协作完成,因为不同语言的数据类型不同,需要一个中间数据类型来进行不同平台之间的传输(json)
json 模块(ujson模块性能较好)
 1.  json模块并不能适用于python所有数据类型的转换(如:集合)
 2.  json适用于不同开发语言之间的数据传递
#序列化:
import json
res1=json.dumps([1,'xioaming',"中国",True,False])
print(res1)

#反序列化
res2=json.loads(res1)
print(res2)	
----------------
将序列化后的数据写入硬盘,然后反序列化出硬盘中文件的内容
#方法一(速度慢):
with open('a.txt',mode='wt',encoding='utf-8') as f:
    f.write(json.dumps([1,'xiaoming',"中国",True,False]))
with open('a.txt',mode='rt',encoding='utf-8') as f1:
    res3=json.loads(f1.read())
    print(res3)

#方法二(速度快):
with open('a.txt',mode='w') as f3:
    json.dump([1,'xioaming12',"中国",True,False],f3)   #将python中对象转换为json格式写入到文件中
with open('a.txt',mode='r') as f3:                   
   print(json.load(f3))                                #将文件中json对象读出来转换为python对象
pickle模块
   pickle和json很像,只不过pickle只用于python的序列化和反序列化。
   序列化时会将python对象转换为bytes类型的数据
   反序列化会将bytes数据转换为相应的python对象
xml和shelve模块
 比较老旧,和json的作用差不多,json操作起来更简单
configparser
import configparser
res=configparser.ConfigParser()
res.read('a.ini',encoding='utf-8')
print(res.sections())               #打印a.ini中的sections部分
print(res.options("mysql"))         #打印mysql section下所有的option
print(res.items("mysql"))           #打印mysql section 下所有的key:value键值对
print(res.get('mysql',"host"))      #打印mysql section下host对应的value
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据工匠大壮

请狠狠粗暴的爱我!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值