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专用方法与迭代机制实例分析
Sep 15 Python
pycharm中连接mysql数据库的步骤详解
May 02 Python
Python编程实现双链表,栈,队列及二叉树的方法示例
Nov 01 Python
python3写的简单本地文件上传服务器实例
Jun 04 Python
python中协程实现TCP连接的实例分析
Oct 14 Python
一看就懂得Python的math模块
Oct 21 Python
pandas读取csv文件,分隔符参数sep的实例
Dec 12 Python
python利用Tesseract识别验证码的方法示例
Jan 21 Python
Django文件存储 默认存储系统解析
Aug 02 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
Feb 14 Python
Python接口测试文件上传实例解析
May 22 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
Jul 01 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
Cappuccino 卡布其诺咖啡之制作
2021/03/03 冲泡冲煮
PHP中用hash实现的数组
2011/07/17 PHP
php后台多用户权限组思路与实现程序代码分享
2012/02/13 PHP
php 目录遍历、删除 函数的使用介绍
2013/04/28 PHP
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
2016/12/23 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
2017/04/26 PHP
老鱼 浅谈javascript面向对象编程
2010/03/04 Javascript
jQuery的观察者模式详解
2014/12/22 Javascript
javascript实现相同事件名称,不同命名空间的调用方法
2015/06/26 Javascript
JS基于VML技术实现的五角星礼花效果代码
2015/10/26 Javascript
jQuery实现自动输入email、时间和域名的方法
2016/08/24 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
JavaScript对象引用与赋值实例详解
2017/03/15 Javascript
JS实现统计字符串中字符出现个数及最大个数功能示例
2018/06/04 Javascript
浅析vue插槽和作用域插槽的理解
2019/04/22 Javascript
Python中的CURL PycURL使用例子
2014/06/01 Python
Python编程实现的简单Web服务器示例
2017/06/22 Python
在交互式环境中执行Python程序过程详解
2019/07/12 Python
Python嵌套函数,作用域与偏函数用法实例分析
2019/12/26 Python
Python如何实现小程序 无限求和平均
2020/02/18 Python
利用python生成照片墙的示例代码
2020/04/09 Python
为什么是 Python -m
2020/06/19 Python
增大python字体的方法步骤
2020/07/05 Python
Python常用外部指令执行代码实例
2020/11/05 Python
python使用scapy模块实现ping扫描的过程详解
2021/01/21 Python
《童年的发现》教学反思
2014/02/14 职场文书
2014社区三八妇女节活动总结
2014/03/01 职场文书
文化宣传方案
2014/03/13 职场文书
竞聘书模板
2014/03/31 职场文书
2014酒店客房部工作总结
2014/12/16 职场文书
2015年清明节演讲稿范文
2015/03/17 职场文书
三好学生竞选稿
2015/11/21 职场文书
高效课堂教学反思
2016/02/24 职场文书
2016年社区六一儿童节活动总结
2016/04/06 职场文书
不知如何爱孩子,这些方法教会您
2019/08/06 职场文书
vue.js Router中嵌套路由的实用示例
2021/06/27 Vue.js