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学习笔记(十四)的主要内容,如果未能解决你的问题,请参考以下文章

Python学习笔记(四十四)

python学习笔记-(十四)进程&协程

python学习笔记(十四): unittest

Python 学习笔记(十四)Python类

Python学习笔记十四_操作Excel

Python学习笔记(二十四)StringIO和BytesIO