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

    一句话说清楚

    各个程序,模块之间用于传递消息所定义的方式,类似于文件编码与解码过程,序列化类似于编码过程,反序列化类似解码过程

    第二句——序列化与反序列化的方式有json与pickle

    第三句——json通用,pickle只能用于python但能穿函数

    json序列化与反序列化

    json序列化直接序列化文件
    import json
    
    data = {
        'name':"alex",
        "age":22
    }
    f = open("data.txt","w",encoding="utf-8")
    json.dump(data,f)
    f.close()
    

      

    json序列化用于网络的传输
    data = {
        'name':"alex",
        "age":22
    }
    f = open("data.txt","w",encoding="utf-8")
    f.write(json.dumps(data))
    f.close()
    

      

    直接调用文件的json反序列化方式

    import json
    
    f = open("data.txt",'r',encoding='utf-8')
    data = json.load(f)     #反序列化
    print(data)
    print(data['age'])
    f.close()
    

      

    用于网络传输的json反序列化方式
    import json
    f = open("data.txt",'r',encoding='utf-8')
    data = json.loads(f.read())     #反序列化
    print(data)
    print(data['age'])
    f.close()
    

      

    pickle序列化与反序列化

    序列化方式

    import pickle
    def sayhi(name):
        print("hello",name)
    data = {
        'name':"alex",
        "age":22,
        'func':sayhi
    }
    
    f = open("test",'wb')
    f.write(pickle.dumps(data))
    

    反序列化方式

    import pickle
    def sayhi(name):
        print("hello",name)
    
    f = open('test','rb')
    data = pickle.loads(f.read())
    print(data['func']("alex"))
    

      







  • 相关阅读:
    物流与仓库
    测试使用
    禅修的升级
    《引爆点 马尔科姆 格拉德威尔》读书笔记总结----《创业必读书第20本》--创业第三关做好业务:3,如何做好营销和增长第4本
    shell
    Vue中常用的方法记录
    前端工程化3-tapable
    Browser上传文件到华为云/七牛云 详细步骤
    immutable
    shell利用叮叮发送消息
  • 原文地址:https://www.cnblogs.com/fengdao/p/6057486.html
Copyright © 2011-2022 走看看