序列化和反序列化(json和pickle)day18

一、什么是序列化/反序列化

  序列化就是将内存中的数据结构转换成一种中间格式存储到硬盘或者基于网络传输

  反序列化就是将硬盘或者网络中传来的一种数据格式转换成内存中的数据结构

二、为什么要有

  1、可以保持程序的运行状态

  2、数据跨平台交互

三、怎么用

  json:

    优点:

      跨平台性强

    缺点:

      只能支持/对应python部分的数据类型

  pickle

    优点:

      可以支持/对应所有python的数据类型

    缺点:

      只能被python识别,不能跨平台

  注:json格式不能识别单引号,全都是双引号 

1、json序列化和反序列化

#1、序列化得到json_str
import json
#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)
import json
# 反序列化:中间格式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)

2、pickle序列化和反序列化

import pickle
#序列化
#pk1=pickle.dumps(dic)
#写入文件
#with open('db.pk1','wb')as f:
#    f.write(pk1)

#1、2合成一步
with open('db.pk1','wb')as f:
    pickle.dump(dic,f)
import pickle
#反序列化
#1、从文件中读取pickle格式
#with open('db.pk1,'rb') as f:
#    pk1=f.read()
#2、将json_str转成内存中的数据类型
#dic=pickle.loads(pk1)

#1、2合成1步:
with open('db.pk1','rb')as f:
    dic=pickle.load(f)

 

转载于:https://www.cnblogs.com/xiaocao736427460/p/9356728.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值