• 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一次就可以了。

      

  • 相关阅读:
    转:上传图片到服务器文件佳
    RowDataBound 事件的巧妙运用
    对查询数据库中第M到N条记录的思考1
    mysql导入表
    vim向上查找
    stackoverflow太好用了
    【原创翻译】理解python的with语句
    转 Python 实例方法、@staticmethod和@classmethod
    我真的渴望成为一名技术牛人
    今天的囧事,一定要熟练使用git。。
  • 原文地址:https://www.cnblogs.com/littlesky1124/p/9463049.html
Copyright © 2020-2023  润新知