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.6.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 706c3ed38087f870e04d82a37bcdc7d64bddadd115d10845bd248c61f39d15d9 |
|
MD5 | c30d6090e17850b741195cbea2a234f6 |
|
BLAKE2b-256 | 5d217d3c69327a60256d38eb750cb181a29735c6af92db6a33adfb3a38c9533f |