Python3.5 Json与pickle实现数据序列化与反序列化操作示例


Posted in Python onApril 29, 2019

本文实例讲述了Python3.5 Json与pickle实现数据序列化与反序列化操作。分享给大家供大家参考,具体如下:

1、Json:不同语言之间进行数据交互。

(1)JSON数据序列化:dumps()

JSON数据是一种轻量级的数据交换格式,序列化:将内存数据对象变成字符串。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu
import json
info = {
  "name":"liu",
  "age":25,
  "sex":"girl"
}
f = open("test.txt","w")
print(json.dumps(info))
f.write(json.dumps(info))
f.close()

运行结果如下图:

Python3.5 Json与pickle实现数据序列化与反序列化操作示例

(2)JSON数据反序列化:loads()

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu
import json
f = open("test.txt","r")
data = json.loads(f.read())
print(data['age'])

运行结果 :

25

(3)Json序列化——多次dumps;反序列化——不能实现多次loads

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu
import json
info = {
  "name":"liu",
  "age":32
}
f = open("test.txt","w")
f.write(json.dumps(info))   #序列化
info["age"]= 21
f.write(json.dumps(info))
f.close()

运行结果:

Python3.5 Json与pickle实现数据序列化与反序列化操作示例

总结:Json只能处理一些简单的数据类型,如:列表、字典。字符串等。XML正在被Json逐步取代。

Json以后使用只dumps一次,loads一次即可。

2、pickle:通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;

通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。

只能在Python语言中用,不能用于其他的语言。

(1)pickle数据序列化:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu
import pickle
def sayhi(name):
  print("hello",name)
info = {
  "name":"liu",
  "age":32,
  "func":sayhi
}
f = open("test.txt","wb")
print()
f.write(pickle.dumps(info))
f.close()

运行结果如下图:

Python3.5 Json与pickle实现数据序列化与反序列化操作示例

(2)pickle数据反序列化:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu
import pickle
def sayhi(name):
  print("hello",name)
f = open("test.txt","rb")
data = pickle.loads(f.read())
print(data["func"]("liu"))

运行结果:

hello liu
None

Python 相关文章推荐
python冒泡排序算法的实现代码
Nov 21 Python
python使用装饰器和线程限制函数执行时间的方法
Apr 18 Python
Python对文件操作知识汇总
May 15 Python
利用python获取某年中每个月的第一天和最后一天
Dec 15 Python
Python GUI布局尺寸适配方法
Oct 11 Python
django 单表操作实例详解
Jul 30 Python
python函数参数(必须参数、可变参数、关键字参数)
Aug 16 Python
python 等差数列末项计算方式
May 03 Python
Python如何绘制日历图和热力图
Aug 07 Python
python如何绘制疫情图
Sep 16 Python
Python datetime模块的使用示例
Feb 02 Python
Python OpenCV超详细讲解读取图像视频和网络摄像头
Apr 02 Python
详解Python中的内建函数,可迭代对象,迭代器
Apr 29 #Python
python抓取需要扫微信登陆页面
Apr 29 #Python
python基于itchat模块实现微信防撤回
Apr 29 #Python
手把手教你使用Python创建微信机器人
Apr 29 #Python
python实现微信防撤回神器
Apr 29 #Python
python实现文件助手中查看微信撤回消息
Apr 29 #Python
Python实现微信消息防撤回功能的实例代码
Apr 29 #Python
You might like
实用函数8
2007/11/08 PHP
PHP句法规则详解 入门学习
2011/11/09 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
2013/06/24 PHP
php自定文件保存session的方法
2014/12/10 PHP
PHP实现创建微信自定义菜单的方法示例
2017/07/14 PHP
PHP SESSION跨页面传递失败解决方案
2020/12/11 PHP
artDialog双击会关闭对话框的修改过程分享
2013/08/05 Javascript
node.js中的fs.renameSync方法使用说明
2014/12/16 Javascript
深入理解JS addLoadEvent函数
2016/05/20 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
2017/01/20 Javascript
bootstrap警告框示例代码分享
2017/05/17 Javascript
webstrom Debug 调试vue项目的方法步骤
2018/07/17 Javascript
关于微信小程序登录的那些事
2019/01/08 Javascript
详解vuex数据传输的两种方式及this.$store undefined的解决办法
2019/08/26 Javascript
antd 表格列宽自适应方法以及错误处理操作
2020/10/27 Javascript
全网小程序接口请求封装实例代码
2020/11/06 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
2020/12/01 Vue.js
python实现udp数据报传输的方法
2014/09/26 Python
python扫描proxy并获取可用代理ip的实例
2017/08/07 Python
用不到50行的Python代码构建最小的区块链
2017/11/16 Python
浅谈pycharm下找不到sqlalchemy的问题
2018/12/03 Python
Python一个简单的通信程序(客户端 服务器)
2019/03/06 Python
python3.4+pycharm 环境安装及使用方法
2019/06/13 Python
sklearn-SVC实现与类参数详解
2019/12/10 Python
python文件处理fileinput使用方法详解
2020/01/02 Python
Python注释、分支结构、循环结构、伪“选择结构”用法实例分析
2020/01/09 Python
Python 找出出现次数超过数组长度一半的元素实例
2020/05/11 Python
Python自定义sorted排序实现方法详解
2020/09/18 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
2020/11/06 Python
印度排名第一的蛋糕、鲜花和礼品送货:Winni
2019/08/02 全球购物
Dogeared官网:在美国手工制作的珠宝
2019/08/24 全球购物
结构和类有什么异同
2012/07/16 面试题
几道Java和数据库的面试题
2013/05/30 面试题
离婚协议书范本样本
2014/08/19 职场文书
关于开学的感想
2015/08/10 职场文书
2016年主题党日活动总结
2016/04/05 职场文书