Jump to content

Pickle (Python)

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 64.19.138.26 (talk) at 14:25, 7 August 2009 (Minor grammatical fix). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In the computer programming language Python, pickle is the standard mechanism for object serialization; pickling is the common term among python programmers for serialization (unpickling for deserializing). Pickle uses a simple stack-based "virtual machine" that records the "instructions" used to reconstruct the object. This makes pickle vulnerable to security risks by malformed or maliciously constructed data, that may cause the deserializer to import arbitrary modules and instantiate any object[1]. Also, not all objects can be pickled, especially ones that hold operating system resources like file handles.

Pickle was originally implemented as the pure-python pickle module, but the cPickle module (also a built-in) offers improved performance (up to 1000 times faster[1]).

There is another python module that allows to save objects in a file called Cerealizer. Its interface is similar to Pickle, however Cerealizer is safe.

References