Списочный подкласс

Рейтинг: -5Ответов: 1Опубликовано: 10.01.2023

подскажите как создать списочный подкласс. Типо того

class classA:
   self.attr = List[classB]

class classB:
   self.attr1=1
   self.attr2=2

param = classA.attr[0].attr1

Ответы

▲ 1

Вы можете использовать SimpleNamespace для представления элементов джсона, и оно будет себя вести именно так, как вы описываете:

import json
from types import SimpleNamespace

# Ваш исходный json
data = '{"attr": [{"attr1": "1", "attr2":"2"}, {"attr1": "3", "attr2":"4"}]}'

x = json.loads(data, object_hook=lambda d: SimpleNamespace(**d))

param = x.attr[0].attr1
print(param)