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调度框架APScheduler使用
Mar 28 Python
基于Django contrib Comments 评论模块(详解)
Dec 08 Python
python利用requests库模拟post请求时json的使用教程
Dec 07 Python
python与字符编码问题
May 24 Python
500行Python代码打造刷脸考勤系统
Jun 03 Python
pandas dataframe的合并实现(append, merge, concat)
Jun 24 Python
Django框架视图层URL映射与反向解析实例分析
Jul 29 Python
详解使用Python下载文件的几种方法
Oct 13 Python
python 中不同包 类 方法 之间的调用详解
Mar 09 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
Apr 15 Python
keras中epoch,batch,loss,val_loss用法说明
Jul 02 Python
Python中return函数返回值实例用法
Nov 19 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
星际争霸 Starcraft 秘技补丁
2020/03/14 星际争霸
php str_pad() 将字符串填充成指定长度的字符串
2010/02/23 PHP
php 缩略图实现函数代码
2011/06/23 PHP
PHP简洁函数(PHP简单明了函数语法)
2012/06/10 PHP
PHP抽象类 介绍
2012/06/13 PHP
Symfony2针对输入时间进行查询的方法分析
2017/06/28 PHP
PHP手机短信验证码实现流程详解
2018/05/17 PHP
PHP的mysqli_ssl_set()函数讲解
2019/01/23 PHP
thinkphp5框架实现的自定义扩展类操作示例
2019/05/16 PHP
Avengerls vs Newbee BO3 第二场2.18
2021/03/10 DOTA
jquery单行文字向上滚动效果示例
2014/03/06 Javascript
js行号显示的文本框实现效果(兼容多种浏览器 )
2015/10/23 Javascript
基于jquery实现省市区三级联动效果
2015/12/25 Javascript
浅析jQuery中使用$所引发的问题
2016/05/29 Javascript
artDialog+plupload实现多文件上传
2016/07/19 Javascript
AngularJS基础 ng-non-bindable 指令详细介绍
2016/08/02 Javascript
微信小程序实现的绘制table表格功能示例
2019/04/26 Javascript
使用Vue-scroller页面input框不能触发滑动的问题及解决方法
2020/08/08 Javascript
解决vant title-active-color与title-inactive-color不生效问题
2020/11/03 Javascript
使用Python中PDB模块中的命令来调试Python代码的教程
2015/03/30 Python
Python的collections模块中的OrderedDict有序字典
2016/07/07 Python
Python3结合Dlib实现人脸识别和剪切
2018/01/24 Python
浅谈Python中的作用域规则和闭包
2018/03/20 Python
使用python批量修改文件名的方法(视频合并时)
2020/03/24 Python
Python切图九宫格的实现方法
2019/10/10 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
浅谈python之自动化运维(Paramiko)
2020/01/31 Python
Python列表倒序输出及其效率详解
2020/03/04 Python
完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误
2020/04/01 Python
python工具快速为音视频自动生成字幕(使用说明)
2021/01/27 Python
Yahoo-PHP面试题1
2016/07/20 面试题
宣传保护环境的公益广告词
2014/03/13 职场文书
高中生国庆节演讲稿范文2014
2014/09/21 职场文书
学校班子个人对照检查材料思想汇报
2014/09/27 职场文书
党员民主生活会材料
2014/12/15 职场文书
大学生村官入党自传
2015/06/26 职场文书