Python学习笔记(十四)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习笔记(十四)相关的知识,希望对你有一定的参考价值。
一、序列化与反序列化
Python 中的 pickle模块提供了一种序列化对象的方法
import pickle
class Student(object):
def __init__(self,name,age,school="新华")
self.__name = name
self.__age = age
self.__school = school
def get_dict(slef):
return { "name":self.__name, "age":self.__age, "shcool":self.__school }
def get_Student(self,dict):
return Student(dict["name"],dict["age"],dict["school"])
file = open(file_path,"wb");
student1 = Student("CQ",20)
pickle.dumps(student1,file) #将对象序列化到文件中去
picklet.dumps(student1,file) #将对象序列化到file-like object中去
file.close()
file1 = open(file_path,"rb")
student2 = pickle.loads(file2) #从文件中反序列化对象
student2 = pickle.load(file-like object) #从file-like object中反序列化对象
二、JSON
JSON是一种简单、便捷、高效的在网络之间传输交换数据的格式,Python通过json模块提供了对JSON的支持
import json
studnet1 = Student("CQ",20)
json_str = json.dumps(student1) #将对象序列化为JSON格式
file-like object = json.dump(student1) #将对象序列化为JSON格式并存储在file-like object上
json.load(json_str) #将json反序列化
json.load(file-like object) #将json从file-like object反序列化
JSON原生提供了对dict的支持,但许多时候我们需要对类进行序列化和反序列化,那么就需要在类中编写特定转换行数,将属性封装为一个dict以及将dict转换并返回一个对象
json.dumps(对象,default = Student.get_dict)
json.dumps(对象,default = Student.get_dict)
json.loads(对象,default = Student.get_student)
json.loads(对象,default = Studnet.get_student)
以上是关于Python学习笔记(十四)的主要内容,如果未能解决你的问题,请参考以下文章