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  专门处理文件

      

      

      

      

  • 相关阅读:
    selenium 操作过程中,元素标红高亮的两种实现方式
    python pytest测试框架介绍五---日志实时输出
    pytest 3.9在python 2.7下的一个bug
    Qt assis tant 帮助集合文档 -由.qhcp生成.qhc
    Qt assistant .qch显示乱码问题
    qhelpgenerator 由qhp生成qch过程碰到的问题 记录
    Qt creator新建widget项目....no valid kits found.....
    Qt creator 账号
    Qt 写Excel
    Qt获取主窗口
  • 原文地址:https://www.cnblogs.com/wjs521/p/9451952.html
Copyright © 2011-2022 走看看