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

    前言json的序列化和反序列化

     1, json 只能序列化简单的数据类型,如,列表,字典,字符串,等简单的类型,不能序列化复杂的类型。

     2, json 是支持所有的语言的,多以我们跨语言的时候都是用json,(和其他语言交互)

    json 序列化

    json的序列化

    json.dumps()

    
    
    import json
    info = {
    'zhang':'123',
    'qing':'456'
    }
    f = open('json_wenjian','w',encoding='utf-8')
    f.write(json.dumps(info))
     

    json的反序列化

    json.loads()

    import json
    f = open('json_wenjian','r',encoding='utf-8')
    data = json.loads(f.read())
    print(data)
    

    json小结

      loads ------dumps  和 load-------dump   是成对出现的。

      方式只有点一不一样。 

    前言pickle的序列化

      pickle可以序列化python中所有的数据类型,包括函数、类等,下面我们就来看看,如何序列化函数的。还有就是,pickle序列化的是字节,而json序列化的是字符,这个要注意一下

    pickle的序列化和反序列化

     序列化

    import pickle
    
    def fun():
        print('hello,world')
    
    info = {
        'zhang':123,
        'qing':456,
        'yao':fun
    }
    
    with open('pickle_wenjian','wb') as f:
        data = pickle.dumps(info)
        f.write(data)

    反序列化

    import pickle
    
    def fun():
        print('hello,world')
    
    
    
    with open('pickle_wenjian','rb') as f:
        data = pickle.loads(f.read())
    print(data)
    

    小结:

    1. son值支持简单的数据类型,pickle支持所有的数据类型。
    2. pickle只能支持python本身的序列化和反序列化,不能用作和其他语言做数据交互,而json可以。
    3. pickle序列化的是整个的数据对象,所以反序列化函数时,函数体中的逻辑变了,是跟着心的函数体走的。
    4. pickle和json在3.0中只能dump一次和load一次,在2.7里面可以dump多次,load多次,anyway,以后只记住,只需要dump一次,load一次就可以了。

      

  • 相关阅读:
    git的使用
    模块化的 require 和 import的区别
    Javascript模块化编程(三):require.js的用法
    Javascript模块化编程(二)commonJS规范和AMD规范
    Javascript模块化编程发展历史
    GULP的使用流程
    jQuery事件对象
    jQuery文档处理 |
    Vue学习笔记【12】——过滤器
    Vue学习笔记【11】——Vue调试工具vue-devtools的安装步骤和使用
  • 原文地址:https://www.cnblogs.com/littlesky1124/p/9463049.html
Copyright © 2011-2022 走看看