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.
原文地址:https://www.cnblogs.com/mingerlcm/p/8546741.html