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 相关文章推荐
Flask SQLAlchemy一对一,一对多的使用方法实践
Feb 10 Python
跟老齐学Python之集合(set)
Sep 24 Python
在Python的Flask框架中使用模版的入门教程
Apr 20 Python
Python selenium如何设置等待时间
Sep 15 Python
python中异常捕获方法详解
Mar 03 Python
django中的setting最佳配置小结
Nov 21 Python
Django 连接sql server数据库的方法
Jun 30 Python
Windows下将Python文件打包成.EXE可执行文件的方法
Aug 03 Python
浅谈pandas用groupby后对层级索引levels的处理方法
Nov 06 Python
python画微信表情符的实例代码
Oct 09 Python
Python命名空间及作用域原理实例解析
Aug 12 Python
python基于opencv批量生成验证码的示例
Apr 28 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
PHP编程中字符串处理的5个技巧小结
2007/11/13 PHP
PHP新建类问题分析及解决思路
2015/11/19 PHP
用PHP写的一个冒泡排序法的函数简单实例
2016/05/26 PHP
让您的菜单不离网站
2006/10/03 Javascript
区分JS中的undefined,null,"",0和false
2007/03/08 Javascript
Javascript 圆角div的实现代码
2009/10/15 Javascript
表格 隔行换色升级版
2009/11/07 Javascript
基于Jquery的动态创建DOM元素的代码
2010/12/28 Javascript
javascript学习笔记(十二) RegExp类型介绍
2012/06/20 Javascript
Jquery.addClass始终无效原因分析
2013/09/08 Javascript
jquery $.fn $.fx是什么意思有什么用
2013/11/04 Javascript
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
jquery ajax跨域解决方法(json方式)
2014/02/04 Javascript
jQuery简单实现网页选项卡特效
2014/11/24 Javascript
js中this的用法实例分析
2015/01/10 Javascript
不用一句js代码初始化组件
2016/01/27 Javascript
JS简单设置下拉选择框默认值的方法
2016/08/20 Javascript
Java中int与integer的区别(基本数据类型与引用数据类型)
2017/02/19 Javascript
浅谈js函数三种定义方式 & 四种调用方式 & 调用顺序
2017/02/19 Javascript
利用vue.js插入dom节点的方法
2017/03/15 Javascript
vue子组件使用自定义事件向父组件传递数据
2017/05/27 Javascript
微信小程序radio组件使用详解
2018/01/31 Javascript
jQuery实现鼠标放置名字上显示详细内容气泡提示框效果的方法分析
2020/04/04 jQuery
[03:09]DOTA2亚洲邀请赛 LGD战队出场宣传片
2015/02/07 DOTA
python用装饰器自动注册Tornado路由详解
2017/02/14 Python
Python基于列表list实现的CRUD操作功能示例
2018/01/05 Python
Python应用领域和就业形势分析总结
2019/05/14 Python
python3 实现的对象与json相互转换操作示例
2019/08/17 Python
python批量修改交换机密码的示例
2020/09/22 Python
Otticanet美国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
小学生运动会报道稿
2014/09/12 职场文书
井冈山红色之旅心得体会
2014/10/07 职场文书
个人整改方案范文
2014/10/25 职场文书
离职信范本
2015/06/23 职场文书
小学庆六一主持词
2015/06/30 职场文书
python的html标准库
2022/04/29 Python