zoukankan      html  css  js  c++  java
  • json和pickle的序列化与反序列化

    (1)json的序列化

    '''
    Json序列化实现了把内存中的内容放到硬盘上,通过Json反序列化又把硬盘上的内容都回来的效果,用到的函数分别为json.dumps()和json.loads();(Json只支持简单的数据对象,例如字符串、字典、数组等。)
    在python3中,json可以dump多次,但是只能load一次;所以使用json序列化时尽量只dump一次,只load一次,如果需要多次dump,每次都要dump到不同的文件夹中。
    '''
    import json
    
    info={"name":"lhy",
          "age":18
          }
    f=open('text.txt','w')
    #f.write(json.dumps(info))
    json.dump(info,f)
    f.close()

    序列化的结果:

    text.txt文件中存入了:{"age": 18, "name": "lhy"}

    (2)json的反序列化:

    import json
    f=open("text.txt",'r')
    data=json.loads(f.read())     #data=json.load(f)
    print(data)
    print(data['age'])

    反序列化的结果:

    (3)pickle序列化:

    import pickle
    
    def func_mini(name):
        print("hello",name)
    
    f=open('text.txt','rb')
    #data=pickle.loads(f.read())
    data=pickle.load(f)
    print(data)
    print(data["func"]('lhy'))
    f.close()

    序列化的结果:

     

    在text.txt文件中存入以下内容:

    (4)pickle反序列化:

    import pickle
    
    def func_mini(name):
        print("hello",name)
    
    f=open('text.txt','rb')
    #data=pickle.loads(f.read())
    data=pickle.load(f)
    print(data)
    print(data["func"]('lhy'))
    f.close()

    反序列化的结果:

     Json序列化和pickle序列化用到的方法是完全一样的,不同之处是,json序列化可以用在其它语言中,而pickle序列化只能用在python语言中;json只能处理简单的数据对象,例如:列表、数组、字典等,而pickle可以处理任意数据对象。pickle序列化中文件的读写方式为”rb”,”wb”,json序列化中文件的读写模式即为“r”,”w”。

  • 相关阅读:
    poj 1733 Parity game
    poj 1456 Supermarket
    bzoj 1304 [CQOI 2009] 叶子的染色
    51Nod 1667 概率好题
    2015年阿里巴巴校招研发工程师在线笔试题汇总
    从字符串常量起说内存分配
    字符串笔面试题
    排序算法(4)-线性时间排序
    华为2015校园招聘机试
    笔画宽度变化(C++和matlab算法)
  • 原文地址:https://www.cnblogs.com/come-on-baby/p/9649124.html
Copyright © 2011-2022 走看看