For serializing Python objects to JSON (dicts) and back
Project description
_ (_) _ ___ ___ _ __ ___ | / __|/ _ \| '_ \/ __| | \__ | (_) | | | \__ \ | |___/\___/|_| |_|___/ _/ | JSON SERIALIZATION |__/ MADE EASY!
~ Any Python objects to/from JSON, easily! ~
|
Example of a model to be serialized:
Example of the serialization:
Output after serialization:
|
Installation
pip install jsons
Usage
import jsons
some_instance = jsons.load(some_dict, SomeClass) # Deserialization
some_dict = jsons.dump(some_instance) # Serialization
In some cases, you have instances that contain other instances that need (de)serialization, for instance with lists or dicts. You can use the typing classes for this as is demonstrated below.
from typing import List, Tuple
import jsons
# For more complex deserialization with generic types, use the typing module
list_of_tuples = jsons.load(some_dict, List[Tuple[AClass, AnotherClass]])
(For more examples, see the FAQ)
Documentation
Meta
Recent updates
0.10.0
Feature: Added a deserializer for complex numbers.
0.9.0
Feature: Added the ability to validate instances right after loading.
Feature: Enhanced typing for the loader functions.
Feature: Added the ability to use multiple processes or threads with deserializing lists.
Feature: Added the jsons.fork() function.
Change: None can now be loaded with the right type hints, even in strict-mode.
Bugfix: A fork from JsonSerializable did not copy its settings.
0.8.9
Breaking change: Values of primitive types are now cast if possible (e.g. in jsons.load('42', int)).
Bugfix: NamedTuples could falsely raise an error when a justified None was provided.
Feature: Support for uuid.UUID.
0.8.8
Feature: Added the ability to dump recursive objects.
Feature: Clearer messaging upon serialization errors.
Bugfix: Fix for failing to deserialize UUIDs.
0.8.7
Breaking change: The default serializers and deserializers now use keyword-only arguments.
Feature: Added strip_attr argument for omitting specific attributes when serializing objects.
Feature: The private attributes from ABC are now excluded from a dump.
Contributors
Special thanks to the following contributors of code, discussions or suggestions:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.