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算法学习之桶排序算法实例(分块排序)
Dec 18 Python
python采用requests库模拟登录和抓取数据的简单示例
Jul 05 Python
python类的继承实例详解
Mar 30 Python
python 使用pandas计算累积求和的方法
Feb 08 Python
Python字符串内置函数功能与用法总结
Apr 16 Python
python实现给微信指定好友定时发送消息
Apr 29 Python
Python3标准库之functools管理函数的工具详解
Feb 27 Python
python pandas.DataFrame.loc函数使用详解
Mar 26 Python
Python基于BeautifulSoup爬取京东商品信息
Jun 01 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
Dec 18 Python
TensorFlow的自动求导原理分析
May 26 Python
Python使用psutil库对系统数据进行采集监控的方法
Aug 23 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动态生成虚拟现实VRML网页
2006/10/09 PHP
关于php fread()使用技巧
2010/01/22 PHP
php实现smarty模板无限极分类的方法
2015/12/07 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
jQuery cdn使用介绍
2013/05/08 Javascript
JQuery判断HTML元素是否存在的两种解决方法
2013/12/26 Javascript
moment.js轻松实现获取当前日期是当年的第几周
2015/02/05 Javascript
js实现页面a向页面b传参的方法
2016/05/29 Javascript
浅析jQuery Ajax通用js封装
2016/06/22 Javascript
JS判断iframe是否加载完成的方法
2016/08/03 Javascript
js实现控制textarea输入字符串的个数,鼠标按下抬起判断输入字符数
2016/10/25 Javascript
echarts学习笔记之图表自适应问题详解
2017/11/22 Javascript
Linux Centos7.2下安装nodejs&npm配置全局路径的教程
2018/05/15 NodeJs
JS实现获取毫秒值及转换成年月日时分秒的方法
2018/08/15 Javascript
JS中appendChild追加子节点无效的解决方法
2018/10/14 Javascript
Vue 自定义指令实现一键 Copy功能
2019/09/16 Javascript
微信小程序实现侧边栏分类
2019/10/21 Javascript
前端使用crypto.js进行加密的函数代码
2020/08/16 Javascript
python实现给字典添加条目的方法
2014/09/25 Python
使用Django和Python创建Json response的方法
2018/03/26 Python
Python判断中文字符串是否相等的实例
2018/07/06 Python
numpy.ndarray 交换多维数组(矩阵)的行/列方法
2018/08/02 Python
Python操作远程服务器 paramiko模块详细介绍
2019/08/07 Python
详细分析Python垃圾回收机制
2020/07/01 Python
python 对象真假值的实例(哪些视为False)
2020/12/11 Python
python如何构建mock接口服务
2021/01/28 Python
基于CSS3实现的黑色个性导航菜单效果
2015/09/14 HTML / CSS
移动web模拟客户端实现多方框输入密码效果【附代码】
2016/03/25 HTML / CSS
Agoda台湾官网:国内外订房2折起
2018/03/20 全球购物
流行文化收藏品:Sideshow(DC漫画,星球大战,漫威)
2019/03/17 全球购物
销售人员工作自我评价
2014/09/21 职场文书
新年祝酒词大全
2015/08/11 职场文书
婚礼长辈答谢词
2015/09/29 职场文书
班主任工作经验交流会总结
2015/11/02 职场文书
如何用RabbitMQ和Swoole实现一个异步任务系统
2021/05/29 PHP
mysql脏页是什么
2021/07/26 MySQL