Я пытаюсь преобразовать «плоский» объект JSON в более сложный объект, используя классы данных и библиотеку dataclasses- json. К сожалению, я не могу изменить структуру JSON. Пример JSON, который я пытаюсь декодировать, может быть:
j = {
"name": "hello",
"added_at": "2020-01-01T12:00:00+00:00",
"foo_item_pk": 1,
"foo_item_name": "foo",
"bar_item_pk: 2,
"bar_item_name": "bar"
}
Есть ли хороший способ кодировать / декодировать JSON в / из такой структуры:
@dataclass_json
@dataclass
class Item:
pk: int
name: str
@dataclass_json
@dataclass
class Data:
pk: int
added_at: added_at: datetime.datetime = field(
metadata=config(
encoder=datetime.datetime.isoformat,
decoder=datetime.datetime.fromisoformat,
)
)
foo: Item
bar: Item
Вызов data.to_json()
должен генерировать тот же результат JSON, что и выше.