No project description provided
Project description
nested dataclass serialization
- lets you (de)serialize nested dataclasses from and to json
- uses custom json-encoder for recursive serialization
- uses
importlib
for deserialization (instantiation of the dataclass-objects)
minimal example
@dataclass
class Bar:
x: str
@dataclass
class Foo:
bars: list[Bar]
bar = Bar(x="test")
foo = Foo(bars=[bar, bar])
json_str = serialize_dataclass(foo)
# this json_str looks like this:
{
"_target_": "test_dataclass_serialization.Foo",
"_id_": "a22ddd36-<some-long-id-here>d2290929",
"bars": [
{
"_target_": "test_dataclass_serialization.Bar",
"_id_": "a22ddd36-<some-long-id-here>ebb0ab925b1bd977208e4",
"x": "test",
},
{
"_target_": "test_dataclass_serialization.Bar",
"_id_": "a22ddd36-<some-long-id-here>ebb0ab925b1bd977208e4",
"x": "test",
},
],
}
# somewhere in a different python-process/container/server
des_foo = deserialize_dataclass(json_str) # getting back the dataclass-object
assert id(des_foo.bars[0]) == id(des_foo.bars[1]) # just to show that deserialization works
similar libs
- madman-bob: looks like you need to explicitly provide the python-class for deserialization:
JSONSerializer.deserialize(InventoryItem, {'name': 'Apple', 'unit_ ...
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Close
Hashes for nested_dataclass_serialization-0.1.7.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 33d1772bc6f83951d01082d62e48998bfe86c1b7c0797a9968347e93a12324e3 |
|
MD5 | e25ea2aa68500dacfe07b6344af953a3 |
|
BLAKE2b-256 | 5d6fe1e2675cb0465104e3fba23bac17ad10961bdb066add998913f969391611 |