import pickle pickle.load(file, *, fix_imports=True, encoding="ASCII", errors="strict", buffers=None) pickle.loads(data, *, fix_imports=True, encoding="ASCII", errors="strict", buffers=None)
file
- файловый объект,data
- строка байтов с упакованными данными,fix_imports=True
- сопоставление данных Python2 и Python3,encoding="ASCII"
- кодировка для чтения данных, генерируемых Python2,errors="strict"
- обработчик ошибок декодирования,buffers=None
- аргумент buffer_callback
указанный при создании объекта pickle.Pickler()
.Функция pickle.load()
модуля pickle
читает упакованное представление объекта из открытого файлового объекта file
и возвращает указанную в нем восстановленную иерархию объектов. Данная функция эквивалентна вызову Unpickler(file).load()
.
Функция pickle.loads()
возвращает восстановленную иерархию объектов из строкового представления данных объекта data
. Данные data
должны быть байтоподобным объектом.
Версия протокола определяется автоматически, поэтому аргумент протокола не требуется. Байты, прошедшие мимо упакованного представления объекта игнорируются.
Подробное описание аргументов file
, fix_imports
, encoding
, errors
и buffers
имеют то же значение, что и в конструкторе pickle.Unpickler()
.
>>> import pickle, pprint >>> data = {'a': [1, 2.0, 3, 4+6j], ... 'b': ('string', u'Unicode string'), ... 'c': None} >>> selfref = [1, 2, 3] >>> selfref.append(selfref_list) # упаковываем объекты Python >>> with open('data.pkl', 'wb') as fp: ... pickle.dump(data, fp) ... pickle.dump(selfref, fp) # восстанавливаем объекты Python >>> with open('data.pkl', 'rb') as fp: ... a = pickle.load(fp) ... b = pickle.load(fp) >>> pprint.pprint(a, width=60) # {'a': [1, 2.0, 3, (4+6j)], # 'b': ('string', 'Unicode string'), # 'c': None} >>> pprint.pprint(b, width=60) # [1, 2, 3, <Recursion on list with id=139710613355592>]