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使用MD5加密字符串示例
Aug 22 Python
Python实现网站文件的全备份和差异备份
Nov 30 Python
python使用datetime模块计算各种时间间隔的方法
Mar 24 Python
浅析Python中的join()方法的使用
May 19 Python
django 开发忘记密码通过邮箱找回功能示例
Apr 17 Python
python+mysql实现个人论文管理系统
Oct 25 Python
python redis 批量设置过期key过程解析
Nov 26 Python
pytorch中tensor.expand()和tensor.expand_as()函数详解
Dec 27 Python
在PyCharm中实现添加快捷模块
Feb 12 Python
python中函数返回多个结果的实例方法
Dec 16 Python
Python与C/C++的相互调用案例
Mar 04 Python
使用Python webdriver图书馆抢座自动预约的正确方法
Mar 04 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的SimpleXML方法读写XML接口文件实例解析
2014/06/16 PHP
浅谈php错误提示及查错方法
2015/07/14 PHP
jquery select选中的一个小问题
2009/10/11 Javascript
很好用的js日历算法详细代码
2013/03/07 Javascript
JavaScript程序员应该知道的45个实用技巧
2014/03/04 Javascript
详谈JavaScript内存泄漏
2014/11/14 Javascript
js使用递归解析xml
2014/12/12 Javascript
javascript删除元素节点removeChild()用法实例
2015/05/26 Javascript
一句jQuery代码实现返回顶部效果(简单实用)
2016/12/28 Javascript
Angularjs 动态改变title标题(兼容ios)
2016/12/29 Javascript
JS中绑定事件顺序(事件冒泡与事件捕获区别)
2017/01/24 Javascript
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
ReactNative短信验证码倒计时控件的实现代码
2017/07/20 Javascript
jQuery条件分页 代替离线查询(附代码)
2017/08/17 jQuery
vue.js中引入vuex储存接口数据及调用的详细流程
2017/12/14 Javascript
Node.js命令行/批处理中如何更改Linux用户密码浅析
2018/07/22 Javascript
[01:29:46]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第二局
2016/02/27 DOTA
[54:29]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第二场
2018/04/09 DOTA
Python使用正则匹配实现抓图代码分享
2015/04/02 Python
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
python如何通过twisted实现数据库异步插入
2018/03/20 Python
python 实现倒排索引的方法
2018/12/25 Python
更新修改后的Python模块方法
2019/03/03 Python
Django用户认证系统如何实现自定义
2020/11/12 Python
css3 border旋转时的动画应用
2016/01/22 HTML / CSS
HTML5新特性之type=file文件上传功能
2018/02/02 HTML / CSS
科颜氏美国官网:Kiehl’s美国
2017/01/31 全球购物
个人对照检查剖析材料
2014/10/13 职场文书
2014年创卫工作总结
2014/11/24 职场文书
岗位聘任报告
2015/03/02 职场文书
公司奖励通知
2015/04/21 职场文书
旅行社计调工作总结
2015/08/12 职场文书
2016年清明节寄语
2015/12/04 职场文书
中秋节英文祝福语句(14句)
2019/09/11 职场文书
详解Django中 render() 函数的使用方法
2021/04/22 Python
MySQL GTID复制的具体使用
2022/05/20 MySQL