zoukankan      html  css  js  c++  java
  • 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.
  • 相关阅读:
    UVa 1331 最大面积最小的三角剖分
    UVa 1626 括号序列(矩阵连乘)
    POJ 3295 Tautology(构造法)
    POJ 2586 Y2K Accounting Bug(贪心)
    POJ 2109 Power of Cryptography
    abcd
    好数
    Gift
    密码游戏
    约瑟夫游戏
  • 原文地址:https://www.cnblogs.com/mingerlcm/p/8546741.html
Copyright © 2011-2022 走看看