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”。

  • 相关阅读:
    IIS与ASP.NET管道
    20个非常棒的jQuery倒计时脚本
    GitHub托管BootStrap资源汇总(持续更新中…)
    推荐13款优秀的Twitter Bootstrap JavaScript插件
    C#程序开发中经常遇到的10条实用的代码
    20款jQuery 的音频和视频插件
    给 C# 开发者的代码审查清单
    Bootstrap 3.0正式版发布!
    为你带来灵感的 20 个 HTML5/CSS3 模板
    通过一个模拟程序让你明白ASP.NET MVC是如何运行的
  • 原文地址:https://www.cnblogs.com/come-on-baby/p/9649124.html
Copyright © 2011-2022 走看看