zoukankan      html  css  js  c++  java
  • json和pickle

     

    Pickle序列化

    用于序列化的两个模块

    • json,用于字符串 和 python数据类型间进行转换
    • pickle,用于python特有的类型 和 python的数据类型间进行转换
    python的pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;
    
    通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。
    
    json是可以和别的语言交互,转换后别的语言可以使用,但仅限于字符串,列表和字典
    
    而pickle是python独有的,可以保存当前状态,可以存档
    简单详解

    Json模块提供了四个功能:dumps、dump(序列化,存)、loads(反序列化,读)、load

    pickle模块提供了四个功能:dumps、dump(序列化,存)、loads(反序列化,读)、load  (不仅可以序列化字典,列表...还可以把一个程序,一个类给序列化掉)

    import json

    #loads  #-->  内部必须是双引号
    #dumps --loads  (对现有的一个操作)

        s = '{"desc":"invilad-citykey", "status":1002}'  
        l = [11,22,33,44]  
          
        result = json.loads(s)  
        print(result,type(result))  
        result = json.dumps(l)  
        print(result,type(result))  
        结果:  
        {'status': 1002, 'desc': 'invilad-citykey'} <class 'dict'>  
        [11, 22, 33, 44] <class 'str'>  

    dump  -- load(对文件的一个操作)

        s = {"desc":"invilad-citykey", "status":1002}  
        l = [11,22,33,44]  
        a = json.dump(s,open("db","w", encoding="utf-8"))  
        b = json.load(open("db","r", encoding="utf-8"))  
        print(b, type(b))  

     注意一个问题:

    如果是汉字进行json转换的话:会转换成编码

    所以

    t = json.dumps(r, ensure_ascii=False)  

    ok,这就是区别

  • 相关阅读:
    【转】我该 不该学习VULKAN
    游戏开发内功秘籍记录
    VS 配置外部DLL的引用路径【可执行文件的环境路径】
    OpenGL3.x,4.x中使用FreeImage显示图片的BUG-黑色,或颜色分量顺序错乱
    C++风格与C风格文件读写效率测试-vs2015,vs2017
    【转】矩阵的几何解释
    android 线程间通信
    android 网络
    安卓 碎片 如何实现类似 活动 栈的 进栈 出栈
    安卓 内容提供者 观察者 解析器
  • 原文地址:https://www.cnblogs.com/renfanzi/p/5643036.html
Copyright © 2011-2022 走看看