一、序列化与反序列化

  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)

  
  

更多相关文章

  1. 【Python】【matplotlib】面向对象方式绘图
  2. 将类对象转换为JSON Python - EasyPost - Django
  3. python魔法方法、构造函数、序列与映射、迭代器、生成器
  4. Scrapy框架--Requests对象
  5. Python阻止复制对象作为参考
  6. 'module'对象没有属性'views' django错误
  7. Python(名称空间、函数嵌套、函数对象)
  8. flask-admin 新增功能关联两张表,关联的表中的字段显示出来是对象
  9. python小练习-对序列分组2

随机推荐

  1. 关于继承和多态性的实例代码
  2. ASP.NET Core项目配置教程(6)_实用技巧
  3. ASP.NET Core中间件设置教程(7)_实用技巧
  4. ASP.NET MVC中传参并绑定数据的实例教程
  5. ASP.NET Core异常和错误处理(8)_实用技巧
  6. Asp.net MVC 对用户输入的字符串做Trim处
  7. ASP.NET Core使用教程(9)_实用技巧
  8. C#中DateTime与时间戳转换的实例代码
  9. Asp.net MVC 对输入的字符串字段做Trim处
  10. C#中自定义控件如何实现TextBox禁止粘贴