At times, I've seen .pickle
, .pck
, .pcl
, and .db
for files that contain Python pickles, but I am unsure what is the most common or best practice. I know that the latter three extensions are also used for other things.
The related question is: What MIME type is preferred for sending pickles between systems using a REST API?
dump(obj) – This function is used to write a pickled representation of obj to the open file object given in the constructor.
Python pickle serializeThe data is pickled into a binary file. The dump function writes the pickled representation of the object to the file object.
JSON is a lightweight format and is much faster than Pickling.
Pickling is alternatively known as "serialization", "marshalling", or "flattening". To serialize (pickle) an object hierarchy, you simply call the dump() function. Similarly, to de-serialize a data stream, you call the load() function. You can pickle any object like integers, strings, tuples, lists, dictionaries, etc.
Python 2
From the Python 2 documentation, while serializing (i.e. writing to a pickle file), use:
output = open('data.pkl', 'wb')
I would choose .pkl
as the extension when using Python 2.
Python 3
The example in the Python 3 documentation now uses .pickle
as the file extension for serialization:
with open('data.pickle', 'wb') as f: pickle.dump(...)
The MIME type preferred for sending pickles from martineau's comment below:
application/octet-stream
See What is the HTTP "content-type" to use for a blob of bytes?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With