Base class with serialization methods for user-defined Python objects
Classes which inherit from Serializable are enabled with default implementations of
to_json, from_json, __reduce__ (for pickling), and other serialization
helpers.
A derived class must either:
- have a member data matching the name of each argument to
__init__ - provide a user-defined
to_dict()method which returns a dictionary whose keys match the arguments to__init__
If you change the keyword arguments to a class which derives from Serializable but would like to be able to deserialize older JSON representations then you can define a class-level dictionary called _KEYWORD_ALIASES which maps old keywords to new names (or None if a keyword was removed).
-
Serializable objects must inherit from
Serializable, be tuples or namedtuples, be serializble primitive types such as dict, list, int, float, or str. -
The serialized representation of objects relies on reserved keywords (such as
"__name__", and"__class__"), so dictionaries are expected to not contain any keys which begin with two underscores.