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实现检测服务器是否可以ping通的2种方法
Jan 01 Python
python fabric使用笔记
May 09 Python
为什么选择python编程语言入门黑客攻防 给你几个理由!
Feb 02 Python
更换Django默认的模板引擎为jinja2的实现方法
May 28 Python
详解配置Django的Celery异步之路踩坑
Nov 25 Python
详解Python传入参数的几种方法
May 16 Python
Python 虚拟空间的使用代码详解
Jun 10 Python
微信小程序python用户认证的实现
Jul 29 Python
python网络编程 使用UDP、TCP协议收发信息详解
Aug 29 Python
Python多线程threading创建及使用方法解析
Jun 17 Python
Python引入多个模块及包的概念过程解析
Sep 21 Python
python 实现的截屏工具
May 08 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 中执行排序与 MySQL 中排序
2009/04/21 PHP
PHP迭代器实现斐波纳契数列的函数
2013/11/12 PHP
查找php配置文件php.ini所在路径的二种方法
2014/05/26 PHP
PHP中使用正则表达式提取中文实现笔记
2015/01/20 PHP
php自定义错误处理用法实例
2015/03/20 PHP
php两点地理坐标距离的计算方法
2018/12/29 PHP
用js自动判断浏览器分辨率的代码
2007/01/28 Javascript
用js实现控制内容的向上向下滚动效果
2007/06/26 Javascript
jquery attr 设定src中含有&(宏)符号问题的解决方法
2011/07/26 Javascript
弹出层之1:JQuery.Boxy (一) 使用介绍
2011/10/06 Javascript
JS注册/移除事件处理程序(ExtJS应用程序设计实战)
2013/05/07 Javascript
js获得地址栏?问号后参数的方法
2013/08/08 Javascript
js动态移动滚动条至底部示例代码
2014/04/24 Javascript
jQuery动画与特效详解
2015/02/01 Javascript
js实现单击图片放大图片的方法
2015/02/17 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
2016/04/07 Javascript
利用JQuery直接调用asp.net后台的简单方法
2016/10/27 Javascript
Vue实现兄弟组件间的联动效果
2020/01/21 Javascript
python中的一些类型转换函数小结
2013/02/10 Python
深入理解Django的中间件middleware
2018/03/14 Python
Python 机器学习库 NumPy入门教程
2018/04/19 Python
python多进程提取处理大量文本的关键词方法
2018/06/05 Python
python 用Matplotlib作图中有多个Y轴
2020/11/28 Python
Python plt 利用subplot 实现在一张画布同时画多张图
2021/02/26 Python
html5用video标签流式加载的实现
2020/05/20 HTML / CSS
澳大利亚小众服装品牌:Maurie & Eve
2018/03/27 全球购物
法律专业应届本科毕业生求职信
2013/10/25 职场文书
大学校运会广播稿
2014/02/03 职场文书
婚前财产公证书
2014/04/10 职场文书
《宿建德江》教学反思
2014/04/23 职场文书
安全演讲稿大全
2014/05/09 职场文书
2014房屋登记授权委托书
2014/10/13 职场文书
公司离职证明标准格式
2014/11/18 职场文书
2016党员干部政治学习心得体会
2016/01/23 职场文书
大学生自我鉴定怎么写
2019/05/07 职场文书
Window server 2012 R2 AD域的组策略相关设置
2022/04/28 Servers