zoukankan      html  css  js  c++  java
  • python中的序列化与反序列化

    之前,在学习python时,一直弄不明白pickle和json模块的序列化和反序例化之间的区别和用法,最近闲来有时间,重新研究了这两个模块,也算是基本搞明白他们之中的区别了。

    用于序列化的两个模块,

    • json,用于字符串 和 python数据类型间进行转换
    • pickle,用于python特有的类型 和 python的数据类型间进行转换

    Json模块提供了四个功能:dumps、dump、loads、load

    pickle模块提供了四个功能:dumps、dump、loads、load

    看下面这个例子,或许你能明白他们之间的区别

    import pickle
    
    
    data = ['aa', 'bb', 'cc']
    # dumps 将数据通过特殊的形式转换为只有python语言认识的字符串
    p_str = pickle.dumps(data)
    print(p_str)
    # loads  将pickle数据转换为python的数据结构
    mes = pickle.loads(p_str)
    print(mes)
    
    # dump 将数据通过特殊的形式转换为只有python语言认识的字符串,并写入文件
    with open('tmp.pw','wb') as f:
        pickle.dump(data,f)
    
    # load 从数据文件中读取数据,并转换为python的数据结构
    with open('tmp.pw','rb') as f:
        print(pickle.load(f))

    json和pickle模块中的dump和load操作其实就是对数据进行编码和解码的处理

    • 编码:把一个Python对象编码转换成Json字符串   json.dumps()
    • 解码:把Json格式字符串解码转换成Python对象   json.loads()
  • 相关阅读:
    关于webapi post 使用多个参数的间接用法
    Web Api 中Get 和 Post 请求的多种情况分析
    Juery On事件的 事件触发流程
    构建ASP.NET网站十大必备工具(1)
    了解 XSS 攻击原理
    c#访问Oracle问题及解决方法
    C#连接数据库的四种方法
    OracleClient卸载
    oracle的默认表空间
    oracle Service Name和SID的区别
  • 原文地址:https://www.cnblogs.com/change1220/p/8484932.html
Copyright © 2011-2022 走看看