首页 > Web开发 > 详细

json&pickle模块

时间:2020-03-13 19:55:34      阅读:86      评论:0      收藏:0      [点我收藏+]
 
 
1.序列化
01 什么是序列化/反序列化
    序列化就是将内存中的数据结构转换成一种中间格式存储到硬盘或者基于网络传输
    发序列化就是硬盘中或者网络中传来的一种数据格式转换成内存中数据结构
 
02 为什要有
    1、可以保存程序的运行状态
    2、数据的跨平台交互
 
03 怎么用
    json
        优点:
            跨平台性强
        缺点:
            只能支持/对应python部分的数据类型
 
    pickle
        优点:
            可以支持/对应所有python的数据类型
        缺点:
            只能被python识别,不能跨平台
2.json模块序列化与反序列化
序列化:内存中的数据类型------>中间格式json
dic={‘name‘:‘akko‘,‘age‘:16,‘sex‘:‘male‘}
# 1、序列化得到json_str
json_str=json.dumps(dic)
# 2、把json_str写入文件
with open(‘db.json‘,‘wt‘,encoding=‘utf-8‘) as f:
    f.write(json_str)
 
    1和2合为一步
with open(‘db.json‘,‘wt‘,encoding=‘utf-8‘) as f:
    json.dump(dic,f)
 
反序列化:中间格式json----->内存中的数据类型
 
#1、从文件中读取json_str
with open(‘db.json‘,‘rt‘,encoding=‘utf-8‘) as f:
    json_str=f.read()
#2、将json_str转成内存中的数据类型
dic=json.loads(json_str)
 
   1和2可以合作一步
with open(‘db.json‘,‘rt‘,encoding=‘utf-8‘) as f:
    dic=json.load(f)
 
验证:print(dic[‘sex‘])
注意点:json格式不能识别单引号,全都是双引号
 
 
3.pickle序列化
dic={‘a‘:1,‘b‘:2,‘c‘:3}
 
1 序列化
pkl=pickle.dumps(dic)
print(pkl,type(pkl))
 
2 写入文件
with open(‘db.pkl‘,‘wb‘) as f:
     f.write(pkl)
 
1和2可以合作一步
with open(‘db.pkl‘,‘wb‘) as f:
     pickle.dump(dic,f)
 
pickle反序列化
#1、从文件中读取pickle格式
with open(‘db.pkl‘,‘rb‘) as f:
    pkl=f.read()
#2、将json_str转成内存中的数据类型
dic=pickle.loads(pkl)
print(dic[‘a‘])
 
1和2可以合作一步
with open(‘db.pkl‘,‘rb‘) as f:
    dic=pickle.load(f)
 
#验证:print(dic[‘a‘])

json&pickle模块

原文:https://www.cnblogs.com/zhouhuayin/p/12488147.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!