import pickle pickle.dump(obj, file, protocol=None, *, \ fix_imports=True, buffer_callback=None) pickle.dumps(obj, protocol=None, *, \ fix_imports=True, buffer_callback=None)
obj
- объект Python, подлежащий сериализации,file
- файловый объект,protocol=None
- протокол сериализацииfix_imports=True
- сопоставление данных Python2 и Python3,buffer_callback=None
- сериализация буфера в файл как часть потока pickle
.pickle.dumps()
- строка байтов.Функция pickle.dump()
модуля pickle
записывает сериализованное представление объекта obj
в открытый файловый объект. Это эквивалентно вызову pickle.Pickler(file, protocol).dump(obj)
.
Функция pickle.dumps()
возвращает выбранное представление объекта obj
как объекта байтов вместо записи его в файл.
Подробное описание аргументов file
, protocol
, fix_imports
и buffer_callback
имеют то же значение, что и в конструкторе pickle.Pickler()
.
import pickle class Test(): emp_count = 0 def __init__(self, name, bonus): self.name = name self.bonus = bonus Test.emp_count += 1 def count(self): print(f'Всего: {Test.emp_count}') def emp(self): print(f'Имя: {self.name}. Бонус: {self.bonus}') >>> emp1 = Test('Mike', 100) >>> emp2 = Test('Bob', 300) >>> emp1.age = 7 >>> data = {'emp1': emp1, 'emp2': emp2} # cохраняем состояние emp1 и emp2 >>> with open('data.pkl', 'wb') as fp: ... pickle.dump(data, fp) # восстанавливаем состояние emp1 и emp2 >>> with open('data.pkl', 'rb') as fp: ... x = pickle.load(fp) >>> foo1 = x['emp1'] >>> foo1.emp() # Имя: Mike. Бонус: 100 >>> foo1.age 7 >>> foo1.count() # Всего: 2 >>> foo2 = x['emp2'] >>> foo2.emp() # Имя: Bob. Бонус: 300