Python的json and pickle序列化
json序列化和json反序列化
#!/usr/bin/env python3 # -*- coding: utf-8 -*- __author__ = '人生入戏' import json a = { "name":"test", "age":"20", } #json序列化 with open("json_test","w",encoding="utf-8") as f: f.write(json.dumps(a)) # 等同于这个 json.dump(a,f) #json反序列化 with open("json_test","r",encoding="utf-8") as f: print(json.loads(f.read())) #等同于这个 print(json.load(f))
pickle序列化和反序列化
#!/usr/bin/env python3 # -*- coding: utf-8 -*- __author__ = '人生入戏' import pickle def hello(): print("Hello!") return 0 a = { "name":"test", "age":"20", "func":hello } with open("pickle_test","wb") as f: f.write(pickle.dumps(a)) #等同于这个 pickle.dump(a,f) with open("pickle_test","rb") as f: print(pickle.loads(f.read())["func"]()) #等同于这个 print(pickle.load(f)["func"]())
JSON和pickle模块的区别
1、JSON只能处理基本数据类型。pickle能处理所有Python的数据类型。
2、JSON用于各种语言之间的字符转换。pickle用于Python程序对象的持久化或者Python程序间对象网络传输,但不同版本的Python序列化可能还有差异。
3、pickle Python自己程序之间进行程序数据交换,支持Python的所有数据类型。
4、json 不同语言之间的交换 只要某种语言支持json。