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

    1.什么是序列化与反序列化

    序列化就是将内存中的数据结构转换成一种中间格式存储到硬盘或者基于网络传输
    发序列化就是硬盘中或者网络中传来的一种数据格式转换成内存中数据结构

    2.为什么要有序列化与反序列化

    1、可以保存程序的运行状态
    2、数据的跨平台交互

    3.如何使用

    import json
    
    dic={'name':'egon','age':18,'sex':'male'}
    #序列化:内存中的数据类型------>中间格式json
    
    # # 1、序列化得到json_str
    # json_str=json.dumps(dic)
    # # 2、把json_str写入文件
    # with open('db.json','wt',encoding='utf-8') as f:
    #     f.write(json_str)
    
    #1和2合为一步
    with open('db.json','wt',encoding='utf-8') as f:
        json.dump(dic,f)
    
    
    # print(json_str,type(json_str)) # json格式不能识别单引号,全都是双引号
    import json
    
    #反序列化:中间格式json-----》内存中的数据类型
    
    # #1、从文件中读取json_str
    # with open('db.json','rt',encoding='utf-8') as f:
    #     json_str=f.read()
    # #2、将json_str转成内存中的数据类型
    # dic=json.loads(json_str)
    
    #1和2可以合作一步
    with open('db.json','rt',encoding='utf-8') as f:
        dic=json.load(f)
    
    print(dic['sex'])
    import pickle
    
    dic={'a':1,'b':2,'c':3}
    
    # #1 序列化
    # pkl=pickle.dumps(dic)
    # # print(pkl,type(pkl))
    #
    # #2 写入文件
    # with open('db.pkl','wb') as f:
    #     f.write(pkl)
    
    #1和2可以合作一步
    # with open('db.pkl','wb') as f:
    #     pickle.dump(dic,f)
    import pickle
    
    
    # # #1、从文件中读取pickle格式
    # with open('db.pkl','rb') as f:
    #     pkl=f.read()
    # #2、将json_str转成内存中的数据类型
    # dic=pickle.loads(pkl)
    # print(dic['a'])
    
    #1和2可以合作一步
    # with open('db.pkl','rb') as f:
    #     dic=pickle.load(f)
    #
    # print(dic['a'])
    
    
    import json,pickle
    
    s={1,2,3}
    # json.dumps(s)
    pickle.dumps(s)

    json
    优点:
      跨平台性强
    缺点:
      只能支持/对应python部分的数据类型

    pickle
    优点:
      可以支持/对应所有python的数据类型
    缺点:
      只能被python识别,不能跨平台

  • 相关阅读:
    聊聊 归一化和标准化
    感觉对自己比较有意义的文章收录
    Quartz.Net 使用心得(一)
    Quartz.Net 使用心得(二)
    HttpClient异步请求Post传递Json
    今天我也用上了阿里云的Centos
    WebApi传参总动员(一)
    半监督学习
    特征选择
    深度学习图像分割——Unet网络
  • 原文地址:https://www.cnblogs.com/chillwave/p/9205792.html
Copyright © 2011-2022 走看看