python-pickle序列化

1.优势:能够序列化python中所有的类型
2.缺陷:只能够在python中使用,无法跨语言传输
3.功能:产生一个对象并且保存在文件中,取出时还是一个对象
    
class C1:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def func1(self):
        print('from func1')

    def func2(self):
        print('from func2')

obj = C1('max', 25)

import json
with open(r'a.txt', 'w', encoding='utf8') as f:
    json.dump(obj, f)  # TypeError: Object of type C1 is not JSON serializable,说明json模块无法将对象存入文件

import pickle
with open(r'a.txt', 'wb') as f:
    pickle.dump(obj, f)

with open(r'a.txt', 'rb')as f:
    data = pickle.load(f)
print(data)  # <__main__.C1 object at 0x000001F214678C50>
data.func1()  # from func1
data.func2()  # from func2
print(data.name)  # max
posted @ 2023-04-23 20:37  ERROR404Notfound  阅读(29)  评论(0)    收藏  举报
Title