Il formato dei dati usati da pickle è specifico di Python. Questo ha il vantaggio che non ci sono restrizioni imposte da standard esterni come per XDRR (che non può rappresentare una condivisione dei puntatori); comunque sia, questo significa che programmi non-Python non hanno la capacità di ricostruire oggetti serializzati con Python.
In modo predefinito, il formato dati di pickle usa una rappresentazione ASCII stampabile. Questa è leggermente più voluminosa di una rappresentazione binaria. Il grande vantaggio nell'usare ASCII stampabile (e qualche altra caratteristica nella rappresentazione di pickle) è che per debugging o per necessità di ripristino, è possibile comprendere il contenuto di file serializzati semplicemente leggendoli con un editor di testi standard.
Esistono attualmente 3 differenti protocolli che possono venire usati per la serializzazione.
Fate riferimento alla PEP 307 per maggiori informazioni.
Se un protocol non viene specificato, viene utilizzata la versione 0. Se il protocol viene specificato indicando un valore negativo o HIGHEST_PROTOCOL, viene usato il protocollo disponibile con il valore più alto.
Modificato nella versione 2.3: Il parametro bin è deprecato e viene fornito soltanto per compatibilità all'indietro con le versioni precedenti. Al suo posto usate il parametro protocol.
Un formato binario, che è nettamente più efficiente, può venire scelto specificando un valore vero per l'argomento bin al costruttore Pickler o alle funzioni dump() e dumps(). Un protocol versione >=1 implica l'uso di un formato binario.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.