zoukankan      html  css  js  c++  java
  • 序列化

    序列化

      将字典列表等数据类型转换成字符串的过程叫做序列化

    序列化的目的

      1.以某种存储形式使自定义对象持久化

      2.讲对象从一个地方传递到另一个地方

      3.使程序更具维护性

      

    json模块提供了四个功能:dumpsdumploadsload

      json是一种所有的语言都可以识别的数据结构

      json格式的key必须是字符串数据类型(字典)

      json格式中的字符串只能是双引号

      如果是数字为key,那么dump之后会强行转换成字符串数据类型(字典)

      json中对元祖做value的字典会把元祖强制转换成列表

      json不支持元祖做key 会报错

      dumps 序列化:将一个字典转换成一个字符串  也可以处理嵌套的数据类型

      

      

      loads  反序列化:将一个字符串格式的字典转换成字典   也可以处理嵌套的数据类型

      

      

      dump  方法接收一个文件句柄,直接将字典转成json字符串写入文件,能多次dump数据到文件里,但是不能load出来了,想多个数据进文件用dumps

      load 方法接收一个文件句柄,直接将文件中的json字符串转换成数据结构返回

      

      

      

      

      

      

      set不能进行dump、load操作

    import  pickle

      dump的结果是bytes,dump用的f 文件句柄需要以wb的形式打开,load所用的f是rb模式

      支持几乎所有对象的序列化

      对于对象的序列化需要这个对象的类在内存中

      对于多次dump/load的操作做了良好的处理

      pickle模块来存储每个学员的对象

      

    with open('pickle_demo','rb') as f:
    while True:
    try:
    print(pickle.load(f))
    except EOFError:
    break

      

      

      

      

    import  shelve  专门处理文件

      

      

      

      

  • 相关阅读:
    【Beta阶段】第六次scrum meeting
    【Beta阶段】第五次scrum meeting
    【Beta阶段】第四次scrum meeting
    【Beta阶段】第三次scrum meeting
    【Beta阶段】第二次scrum meeting
    团队作业4——第一次项目冲刺(Alpha版本) 日志集合处
    团队作业10——Beta版本事后诸葛亮
    Beta阶段项目复审
    团队作业9——展示博客(Beta版本)
    团队作业9——测试与发布(Beta版本)
  • 原文地址:https://www.cnblogs.com/wjs521/p/9451952.html
Copyright © 2011-2022 走看看