marshal

Модуль marshal используется для сериализации объектов в «недокументированные» форматы представления данных, используемые в языке Python.

Note

  • Данные сохраняются в платформонезависимом формате.

  • Поддерживаются только None, целые числа, длинные целые числа, числа с плавающей точкой, комплексные числа, строки, строки Юникода, кортежи, списки, словари и объекты с программным кодом. Списки, кортежи и словари могут содержать только объекты поддерживаемых типов. Экземпляры классов и рекурсивные ссылки в списках, кортежах и словарях не поддерживаются.

  • Целые числа могут быть преобразованы в длинные целые, если встроенный тип int не обладает достаточной точностью для их представления, например если сериализованное целое число содержит 64 бита, а чтение выполняется на платформе, поддерживающей 32-битные целые числа.

  • Модуль marshal не обеспечивает защиту от ошибочных или злонамеренных данных и не должен использоваться для чтения данных, полученных из непроверенных источников.

  • Модуль marshal имеет значительно более высокую производительность, чем модуль pickle, и имеет менее широкие возможности.

marshal.dump(value, file[, version])
Parameters

version (int) – формат данных. по умолчанию определяется переменной marshal.version и в настоящее время имеет значение 2. Версия 0 – это устаревший формат, использовавшийся более ранними версиями Python.

Сохраняет объект в файловый объект.

Note

Если объект относится к неподдерживаемым типам, возбуждается исключение ValueError.

marshal.dumps(value[, version])
Parameters

version (int) – формат данных. по умолчанию определяется переменной marshal.version и в настоящее время имеет значение 2. Версия 0 – это устаревший формат, использовавшийся более ранними версиями Python.

Возвращает строку, записанную функцией dump(). Если объект value относится к неподдерживаемым типам, возбуждается исключение ValueError.

marshal.load(file)

Читает и возвращает следующее значение из файлового объекта. Если функции не удалось прочитать допустимое значение, будет возбуждено исключение EOFError, ValueError или TypeError. Формат данных в файле определяется автоматически.

marshal.loads(string)

Читает и возвращает следующее значение из строки string.