zoukankan      html  css  js  c++  java
  • Python学习之路:json and pickle序列化

    序列化实现方法:

    #不实用模块
    # info ={
    #     'name':'alex',
    #     'age':22
    #
    # }
    # f = open("test.text","w")
    # f.write(str(info))
    #
    # f.close()
    
    #json 序列化简单数据类型
    # import json
    #
    # info ={
    #     'name':'alex',
    #     'age':22
    #
    # }
    # f = open("test.text","w")
    # f.write(json.dumps(info))
    # f.close()
    
    #python会跟JAVA,C语言做交互,其中需要一个中间交互语言---json,能处理的都是简单的数据类型
    
    # import json
    # def sayhi(name):
    #     print("hello,",name)
    #
    # info ={
    #     'name':'alex',
    #     'age':22,
    #     'func':sayhi
    #
    # }
    # f = open("test.text","w")
    # f.write(json.dumps(info))#报错,函数不可序列化
    
    
    import pickle#pickle可以序列化Python中所有数据类型
    def sayhi(name):
        print("hello,",name)
    
    info ={
        'name':'alex',
        'age':22,
        'func':sayhi
    
    }
    f = open("test.text","wb")
    f.write(pickle.dumps(info))
    

     反序列化相应方法:

    # f = open("test.text","r")
    # data = eval(f.read())
    # f.close()
    #
    # print(data['age'])
    
    
    # import json
    #
    # f = open("test.text","r")
    # data = json.loads(f.read())
    #
    # print(data['age'])
    
    #pickle只能在Python语言内部使用
    import pickle#f反序列化的整个数据对象
    def sayhi(name):
        print("hello,",name)
        print("hello2,",name)
    
    f =open("test.text","rb")
    data =pickle.loads(f.read())#data=pickle.load(f)
    print(data["func"]('alex'))
    

     Python3.X可以多次json.dumps,但是只能一次json.loads,建议每个程序只一次json.dumps,一次json.loads

    import json
    
    
    info ={
        'name':'alex',
        'age':22
    
    }
    f = open("test.text","w")
    f.write(json.dumps(info))
    
    info['age']=21
    
    f.write(json.dumps(info))
    
    f.close()
    

     pickle.dumps与pickle.dump;pickle.loads与pickle.load

    import pickle#pickle可以序列化Python中所有数据类型
    def sayhi(name):
        print("hello,",name)
    
    info ={
        'name':'alex',
        'age':22,
        'func':sayhi
    
    }
    f = open("test.text","wb")
    pickle.dump(info,f)#f.write(pickle.dumps(info))
    f.close()
    
    ----------------------------------------------------------------
    
    #pickle只能在Python语言内部使用
    import pickle#f反序列化的整个数据对象
    def sayhi(name):
        print("hello,",name)
        print("hello2,",name)
    
    f =open("test.text","rb")
    data =pickle.loads(f.read())#data=pickle.load(f)
    print(data["func"]('alex'))
    
  • 相关阅读:
    linux 安装 svn
    人群计数:Single-Image Crowd Counting via Multi-Column Convolutional Neural Network
    Ubuntu查看CPU占用和使用情况
    看完这篇文章,我奶奶都懂了HTTPS原理
    EfficientNet算法笔记
    Soft NMS算法笔记
    DenseNet算法详解
    AI竞赛服务平台—— FlyAI
    Cornernet训练自己的数据
    深度学习物体检测:CornerNet
  • 原文地址:https://www.cnblogs.com/xiaobai005/p/8013019.html
Copyright © 2011-2022 走看看