Сообщить об ошибке.

Функция load() и loads() модуля pickle в Python

Восстановить состояние объектов Python

Синтаксис:

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)

Параметры:

Возвращаемое значение:

  • иерархия восстановленных объектов.

Описание:

Функция 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>]