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中as用法实例分析
Apr 30 Python
Python实现遍历数据库并获取key的值
May 17 Python
在Python中处理列表之reverse()方法的使用教程
May 21 Python
python对配置文件.ini进行增删改查操作的方法示例
Jul 28 Python
Python入门之三角函数sin()函数实例详解
Nov 08 Python
详解pyqt5 动画在QThread线程中无法运行问题
May 05 Python
PyCharm代码格式调整方法
May 23 Python
Python字符串逆序输出的实例讲解
Feb 16 Python
python正则爬取某段子网站前20页段子(request库)过程解析
Aug 10 Python
python-numpy-指数分布实例详解
Dec 07 Python
python调用win32接口进行截图的示例
Nov 11 Python
利用Python+OpenCV三步去除水印
May 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新手上路(十二)
2006/10/09 PHP
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
PHP读取PPT文件的方法
2015/12/10 PHP
Zend Framework动作助手FlashMessenger用法详解
2016/03/05 PHP
PHP简单实现解析xml为数组的方法
2018/05/02 PHP
laravel框架中间件 except 和 only 的用法示例
2019/07/12 PHP
js实现页面转发功能示例代码
2013/08/05 Javascript
自己编写的类似JS的trim方法
2013/10/09 Javascript
Jquery+asp.net后台数据传到前台js进行解析的方法
2014/05/11 Javascript
Javascript图片上传前的本地预览实例
2014/06/16 Javascript
原生JS和jQuery版实现文件上传功能
2016/04/18 Javascript
AngularJS开发教程之控制器之间的通信方法分析
2016/12/25 Javascript
javascript实现数据双向绑定的三种方式小结
2017/03/09 Javascript
ES6中Math对象新增的方法实例详解
2017/04/25 Javascript
JavaScript 值类型和引用类型的初次研究(推荐)
2017/07/19 Javascript
vue中设置height:100%无效的问题及解决方法
2018/07/27 Javascript
使用vue-router切换页面时实现设置过渡动画
2019/10/31 Javascript
js 计算月/周的第一天和最后一天代码
2020/02/01 Javascript
关于Python中空格字符串处理的技巧总结
2017/08/10 Python
python实现整数的二进制循环移位
2019/03/08 Python
numpy.meshgrid()理解(小结)
2019/08/01 Python
Python OpenCV视频截取并保存实现代码
2019/11/30 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
2020/02/25 Python
Python爬虫之Selenium实现关闭浏览器
2020/12/04 Python
详解Canvas 跨域脱坑实践
2018/11/07 HTML / CSS
美国流行背包品牌:JanSport(杰斯伯)
2018/03/02 全球购物
Roxy俄罗斯官方网站:冲浪和滑雪板的一切
2020/06/20 全球购物
Python面试题:Python是如何进行内存管理的
2014/08/04 面试题
体育专业个人求职信范文
2013/12/27 职场文书
办公室前台岗位职责
2014/01/04 职场文书
狼和鹿教学反思
2014/02/05 职场文书
2014国培学习感言
2014/03/05 职场文书
2014年国庆节活动总结
2014/08/26 职场文书
2014年企业团支部工作总结
2014/12/10 职场文书
复兴之路展览观后感
2015/06/02 职场文书
导游词之泉州崇武古城
2019/12/20 职场文书