Python3.5 Json与pickle实现数据序列化与反序列化操作示例

作者:loveliuzz 时间:2022-04-08 17:53:55 

本文实例讲述了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

PS:这里再为大家推荐几款比较实用的json在线工具供大家参考使用:

在线JSON代码检验、检验、美化、格式化工具:
http://tools.jb51.net/code/json

JSON在线格式化工具:
http://tools.jb51.net/code/jsonformat

在线XML/JSON互相转换工具:
http://tools.jb51.net/code/xmljson

json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools.jb51.net/code/jsoncodeformat

在线json压缩/转义工具:
http://tools.jb51.net/code/json_yasuo_trans

更多Python相关内容感兴趣的读者可查看本站专题:《Python操作json技巧总结》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

来源:https://blog.csdn.net/loveliuzz/article/details/78092056

标签:Python3.5,Json,pickle,序列化
0
投稿

猜你喜欢

  • ubuntu20.04配置mysql8.0的实现步骤

    2024-01-28 14:56:16
  • GO语言延迟函数defer用法分析

    2024-04-23 09:45:39
  • Python中with...as...的使用方法

    2021-10-01 16:58:07
  • python使用Apriori算法进行关联性解析

    2022-08-15 13:02:10
  • 打造“前端开发”程序员专用版EditPlus

    2009-01-05 13:04:00
  • mysql中如何查询数据库中的表名

    2024-01-20 03:07:32
  • 一文搞懂MySQL元数据锁(MDL)

    2024-01-14 18:29:08
  • Go语言递归函数的具体实现

    2023-08-05 02:35:32
  • 关于JavaScript中string 的replace

    2024-05-05 09:22:42
  • PHP格式化显示时间date()函数代码

    2023-06-10 17:55:01
  • pandas按行按列遍历Dataframe的几种方式

    2023-07-04 15:36:05
  • 如何利用Python识别图片中的文字详解

    2021-02-07 21:05:30
  • python基础之内置函数

    2022-02-28 09:15:58
  • 微信小程序使用Vant Weapp组件库的方法步骤

    2023-09-11 15:17:34
  • python顺序的读取文件夹下名称有序的文件方法

    2021-03-10 08:23:37
  • SQL SERVER 分组求和sql语句

    2024-01-13 04:43:16
  • 一文详解Go语言单元测试的原理与使用

    2024-05-09 10:08:03
  • Python使用itchat模块实现简单的微信控制电脑功能示例

    2023-01-06 14:56:44
  • Go语言题解LeetCode1260二维网格迁移示例详解

    2024-04-29 13:04:53
  • Python Matplotlib实现三维数据的散点图绘制

    2021-01-30 09:45:19
  • asp之家 网络编程 m.aspxhome.com