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"))
    

      







  • 相关阅读:
    [极客大挑战 2019]BuyFlag
    [极客大挑战 2019]BabySQL
    [网鼎杯 2018]Fakebook
    C语言学习笔记_内存数据和字符串
    剑指OFFER_数据流中的中位数
    剑指OFFER_滑动窗口的最大值
    剑指OFFER_矩阵中的路径
    C语言学习笔记_指针相关知识
    剑指OFFER_机器人的运动范围
    剑指OFFER_剪绳子
  • 原文地址:https://www.cnblogs.com/fengdao/p/6057486.html
Copyright © 2011-2022 走看看