• Python pickle 模块


    与JSON不同的是pickle不是用于多种语言间的数据传输,

    它仅作为python对象的持久化或者python程序间进行互相传输对象的方法,因此它支持了python所有的数据类型

    二进制格式

    dumps(obj,[,protocol]) 将obj对象序列化为string形式,而不是存入文件中

    import pickle
    
    d = {'name':'alex', 'age': 12}
    
    
    data = pickle.dumps(d)
    print(data)
    
    # b'x80x03}qx00(Xx04x00x00x00nameqx01Xx04x00x00x00alexqx02Xx03x00x00x00ageqx03Kx0cu.'

    将字符串 以二进制形式保存到文件里

    import pickle
    
    d = {'name':'alex', 'age': 12}
    
    with open("data.pkl", "wb") as pk:
        data = pickle.dump(d, pk)
        print(data)

    pickle.load(file)  将file中的对象序列化读出

    注解:从file中读取一个字符串,并将它重构为原来的python对象。
      file:类文件对象,有read()和readline()接口

    把文件的二进制格式 转换成Python对象格式

    import pickle
    
    with open("data.pkl", "rb") as f:
        data = pickle.load(f)
        print(data)
    
    # {'name': 'alex', 'age': 12}

    pickle 序列化函数

    import pickle
    
    def sayhi():
        pass
    
    data = pickle.dumps(sayhi)
    print(data)
    
    # b'x80x03c__main__
    sayhi
    qx00.'

    pickle 序列化类

    import pickle
    
    class Foo(object):
        pass
    
    data = pickle.dumps(Foo)
    print(data)
    
    # b'x80x03c__main__
    Foo
    qx00.
  • 相关阅读:
    在Linux中安装Oracle(较详细图解)
    SecureCRT
    MHA配置文件说明
    MySQL建表规范与常见问题 (go)
    Shell编程时常用的系统文件(转)
    Leetcode: Excel Sheet Column Title
    Leetcode: Find Peak Element
    Leetcode: Intersection of Two Linked Lists
    Leetcode: Majority Element
    Summary: Class Variable vs. Instance Variable && Class Method
  • 原文地址:https://www.cnblogs.com/mingerlcm/p/8546741.html
Copyright © 2020-2023  润新知