• Python_序列化和反序列化模块


    序列化:将对象转换为可通过网络传输或可存储到本地磁盘的数据格式的转换过程,称为序列化,反之,称为反序列化

    json: 用来实现不同语言,不同程序直接的信息交互,json支持所有高级语言之间的序列化交互,json只能通过   字典—>字符串—>字典  的格式转换

            注:json是读写序列化格式

    pickle: python 中独有的序列化方法,如果有需要Python可以把Python中几乎所有的类型都可以序列化转换

           注:pickle是二进制读写序列化格式

    json与pickle都有相同的方法:

      x.dumps():将得到的json或pickle数据序列化为一个bytes,然后将这个bytes写入磁盘或进行传输

      x.loads():把得到的json或pickle数据从磁盘中读到内存中时,把内容先读到一个bytes中,然后再用loads反序列化出对象

      x.dump():可直接将得到的json或pickle数据序列化后保存到文件中

      x.load():可直接读取文件中的json或pickle数据进行反序列化

    实例:

    import json,pickle
    # f = open('测试文件.txt', 'w')     # json 运用 'w',写入
    f = open('测试文件.txt', 'wb')        # pickle 运用二进制'wb'写入
    
    info = {
        'Presly': 'come on',
        'Vera': '2333',
        'mini': 'hello'
    }
    # json.dump(info, f)        # 转为纯字符串
    # f.write(json.dumps(info))
    
    pickle.dump(info, f)         # 转为二进制
    # f.write(pickle.dumps(info))
    
    f.close()
    序列化
    import json , pickle
    # f = open('测试文件.txt', 'r')
    f = open('测试文件.txt', 'rb')
    
    # data = json.load(f)         # 只能识别字符串,不能识别二进制
    # data = json.loads(f.read())
    
    # data = pickle.load(f)          # 只能识别二进制
    data = pickle.loads(f.read())
    
    print(data)
    f.close()
    反序列化
  • 相关阅读:
    ENVI【遥感图像预处理之图像的几何校正】
    ENVI数据显示操作【Tools菜单操作1】
    ENVI软件操作【数据显示操作——Overlay菜单操作】
    ENVI软件操作之【数据的显示操作】
    ADO.NET操作数据库(一)
    ASP.Net之数据绑定
    动态网页的建立
    VS2010安装异常中断后无法安装的解决方法(安装时发生严重错误)
    linux vi 删除多行的方法
    简单实现异步编程promise模式
  • 原文地址:https://www.cnblogs.com/Vera-y/p/9646687.html
Copyright © 2020-2023  润新知