marshal — Internal Python object serialization
Last Updated :
05 Sep, 2022
Serializing a data means converting it into a string of bytes and later reconstructing it from such a string. If the data is composed entirely of fundamental Python objects, the fastest way to serialize the data is by using marshal module (For user defined classes, Pickle should be preferred). Marshal module contains functions that can read and write Python values in a binary format. The marshal module exists mainly to support reading and writing the “pseudo-compiled” code for Python modules of .pyc files. This module doesn’t support all Python object types. The following types are supported: booleans, integers, floating point numbers, complex numbers, strings, bytes, bytearrays, tuples, lists, sets, frozensets, dictionaries, and code objects, where it should be understood that tuples, lists, sets, frozensets and dictionaries are only supported as long as the values contained therein are themselves supported. The singletons None, Ellipsis and StopIteration can also be marshalled and unmarshalled. Functions :
- marshal.version : It indicates the format used by the module.
- Version 0 - Historical format
- Version 1 - Shares interned strings
- Version 2 - Uses a binary format for floating point numbers
- Version 3 - Support for object instancing and recursion
- Version 4 - Current Version
- marshal.dumps(value[, version]) : The function returns the bytes object that would be written to a file by dump(value, file). The version argument indicates the data format that dumps should use. A ValueError exception is raised if the value has (or contains an object that has) an unsupported type. Example
Python3
# Python code to demonstrate serialization
import marshal
data = {12:'twelve', 'feep':list('ciao'), 1.23:4+5j,
(1,2,3):u'wer'}
bytes = marshal.dumps(data)
print (bytes)
Output
{tfeep[tctitatog®Gáz®ó?y@@ittwelve(iiiuwer0}
- marshal.loads(bytes) : This function can reconstruct the data by converting the bytes-like object to a value. EOFError, ValueError or TypeError is raised if no value is found. Example
Python3
# Python code to demonstrate de-serialization
import marshal
data = {12:'twelve', 'feep':list('ciao'), 1.23:4+5j,
(1,2,3):u'wer'}
bytes = marshal.dumps(data)
redata = marshal.loads(bytes)
print (redata)
Output
{12: 'twelve', 1.23: (4+5j), 'feep': ['c', 'i', 'a', 'o'], (1, 2, 3): u'wer'}
- marshal.dump(value, file[, version]) : This function is used to write the supported type value on the open writable binary file. A ValueError exception is raised if the value has an unsupported type.
- marshal.load(file) : This function reads one value from the open readable binary file and returns it. EOFError, ValueError or TypeError is raised if no value is read.
Similar Reads
pickle â Python object serialization Python is a widely used general-purpose, high-level programming language. In this article, we will learn about pickling and unpickling in Python using the pickle module. The Python Pickle ModuleThe pickle module is used for implementing binary protocols for serializing and de-serializing a Python ob
9 min read
Convert Object to String in Python Python provides built-in type conversion functions to easily transform one data type into another. This article explores the process of converting objects into strings which is a basic aspect of Python programming.Since every element in Python is an object, we can use the built-in str() and repr() m
2 min read
Modules available for Serialization and Deserialization in Python Python provides three different modules which allow us to serialize and deserialize objects : Â Marshal ModulePickle ModuleJSON Module 1. Marshal Module: It is the oldest module among these three. It is mainly used to read and write the compiled byte code of Python modules. Even we can use marshal t
3 min read
Deserialize JSON to Object in Python Let us see how to deserialize a JSON document into a Python object. Deserialization is the process of decoding the data that is in JSON format into native data type. In Python, deserialization decodes JSON data into a dictionary(data type in python).We will be using these methods of the json module
2 min read
Convert class object to JSON in Python In Python, class objects are used to organize complex information. To save or share this information, we need to convert it into a format like JSON, which is easy to read and write. Since class objects can't be saved directly as JSON, we first convert them into a dictionary (a data structure with ke
3 min read
Flask Serialization and Deserialization Serialization and deserialization are fundamental concepts in web development, especially when working with REST APIs in Flask. Serialization refers to converting complex data types (such as Python objects) into a format that can be easily stored or transmitted, like JSON or XML. Deserialization, on
4 min read