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实现八大排序算法
Aug 13 Python
python实现下载文件的三种方法
Feb 09 Python
wxPython之解决闪烁的问题
Jan 15 Python
对python中的for循环和range内置函数详解
Apr 17 Python
Python实现平行坐标图的两种方法小结
Jul 04 Python
Python实现滑动平均(Moving Average)的例子
Aug 24 Python
python lambda表达式(匿名函数)写法解析
Sep 16 Python
解决django-xadmin列表页filter关联对象搜索问题
Nov 15 Python
django教程如何自学
Jul 31 Python
无需压缩软件,用python帮你操作压缩包
Aug 17 Python
详解Anaconda安装tensorflow报错问题解决方法
Nov 01 Python
python-for x in range的用法(注意要点、细节)
May 10 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
粗略计算在线时间,bug:ip相同
2006/12/09 PHP
php cookie的操作实现代码(登录)
2010/12/29 PHP
使用PHP遍历文件夹与子目录的函数代码
2011/09/26 PHP
PHP实现QQ空间自动回复说说的方法
2015/12/02 PHP
PHP代码维护,重构变困难的4种原因分析
2016/01/25 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
小型js框架veryide.librar源代码
2009/03/05 Javascript
JavaScript简单实现网页回到顶部功能
2013/11/12 Javascript
jQuery中on()方法用法实例
2015/01/19 Javascript
js的flv视频播放器插件使用方法
2015/06/23 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
2015/08/04 Javascript
BootStrap Validator对于隐藏域验证和程序赋值即时验证的问题浅析
2016/12/01 Javascript
微信小程序实现红包雨功能
2018/07/11 Javascript
VueJS 取得 URL 参数值的方法
2019/07/19 Javascript
基于html+css+js实现简易计算器代码实例
2020/02/28 Javascript
python实现排序算法
2014/02/14 Python
Python中的Classes和Metaclasses详解
2015/04/02 Python
Python的Django框架中的Context使用
2015/07/15 Python
Ubuntu 下 vim 搭建python 环境 配置
2017/06/12 Python
python+pyqt实现12306图片验证效果
2017/10/25 Python
Python 数据处理库 pandas进阶教程
2018/04/21 Python
详解Python3的TFTP文件传输
2018/06/26 Python
pytorch中tensor的合并与截取方法
2018/07/26 Python
解决Python print输出不换行没空格的问题
2018/11/14 Python
对python_discover方法遍历所有执行的用例详解
2019/02/13 Python
pytorch模型存储的2种实现方法
2020/02/14 Python
浅析Python 抽象工厂模式的优缺点
2020/07/13 Python
详解Python高阶函数
2020/08/15 Python
HTML5之多线程(Web Worker)
2019/01/02 HTML / CSS
英国天然有机美容护肤品:Neal’s Yard Remedies
2018/05/05 全球购物
澳大利亚电商Catch新西兰站:Catch.co.nz
2020/05/30 全球购物
高中生的自我鉴定范文
2014/01/24 职场文书
应收账款管理制度
2015/08/06 职场文书
2020年基层司法所建设情况调研报告
2019/11/30 职场文书
PHP策略模式写法
2021/04/01 PHP
python利用while求100内的整数和方式
2021/11/07 Python