这篇文章将为大家详细讲解有关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()
运行结果如下图:
(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()
运行结果:
总结: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()
运行结果如下图:
(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
关于“Python3.5中Json与pickle如何实现数据序列化与反序列化操作”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。