https://docs.python.org/3/library/pickle.html
The 'pickle' module implements binary protocols for serializing and de-serializing a Python object structure. 'Pickling' is the process whereby a Python object hierarchy is converted into a byte stream, and 'unpickling' is the inverse operation, whereby a byte stream is converted back into an object hierarchy.
Warning: The pickle module is not secure. Only unpickle data you trust. Safer serialization formats such as json may be more appropriate if you are processing untrusted data.
# pickle.dump(obj, file, protocol=None, *, fix_imports=True, buffer_callback=None) # Write the pickled representation of the object 'obj' to the open file object 'file'. # pickle.dumps(obj, protocol=None, *, fix_imports=True, buffer_callback=None) # Return the pickled representation of the object 'obj' as a bytes object, # instead of writing it to a file. # pickle.load(file, *, fix_imports=True, encoding="ASCII", errors="strict", buffers=None) # Read the pickled representation of an object from the open file object 'file' # and return the reconstituted object hierarchy specified therein. # pickle.loads(data, /, *, fix_imports=True, encoding="ASCII", errors="strict", buffers=None) # Return the reconstituted object hierarchy of the pickled representation # 'data' of an object. 'data' must be a bytes-like object.
import pickle # prepare a collection of objects adict = {"a": "piękny", "b": [1, 2.0, 3+4j], "c": {None, True, False}} word = pickle.dumps(adict) # pickling adict to bytes (b'...') bdict = pickle.loads(word) # unpickling from bytes assert adict == bdict
import pickle # prepare a collection of objects adict = {"a": "piękny", "b": [1, 2.0, 3+4j], "c": {None, True, False}} with open('data.pickle', 'wb') as outfile: # a binary file pickle.dump(adict, outfile) # pickling with open('data.pickle', 'rb') as infile: # a binary file bdict = pickle.load(infile) # unpickling assert adict == bdict