2012-05-10 4 views
0

У меня возникает идея, что pickle - это библиотека сохранения объектов, которая позволяет мне записывать структуру данных на диск и перезагружать ее.python pickle: что это такое? когда я его использую?

Почему я когда-либо делал это против традиционного метода использования текстового файла?

РЕДАКТИРОВАТЬ: На самом деле это не очень полезный способ сформулировать вопрос. Я имею в виду, каковы ситуации, когда рассол будет легче/удобнее, и когда это вызовет у меня проблемы? Какой тип данных или шаблон дизайна подходит для рассола?

+2

Вы читали http://docs.python.org/library/pickle.html!? – akaRem

+0

@akaRem - Я сделал, но не понятно, почему и когда вы будете мариновать. – gecko

ответ

5

Если вы хотите хранить объекты Python, которые не являются текстом, не легко сериализоваться с другими библиотеками (JSON, msgpack и т. Д.) И не хотят писать собственный код сериализации и десериализации.

Вообще говоря, рассол должен быть сериализации и десериализации метод последней инстанции: Это не быстрый (msgpack является далеко быстрее и компактнее), не является безопасным (никогда не использовать маринад в качестве хранилища формат для файлов cookie или других доступных для клиента данных!), не совместим (нет реализаций для языков, отличных от Python) ... но он работает для объектов и типов данных, которые обычно не поддерживаются нигде (хотя не все Объекты Python).

1

С рассолом или аналогичным, вы можете получить текстовые представления объектов, которые могут быть использованы для восстановления этих объектов. Без чего-то вроде рассола вы не можете, не написав свой собственный код настойчивости.