Skip to main content

No project description provided

Project description

tests pypi License: MIT bear-ified Ruff-ified

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

nested_dataclass_serialization-0.1.4.tar.gz (8.6 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page