AttributeError: объект не имеет атрибута класса данных python3.11Python

Программы на Python
Anonymous
AttributeError: объект не имеет атрибута класса данных python3.11

Сообщение Anonymous »

Код: Выделить всё

from dataclasses import dataclass, field
from datetime import datetime
from typing import List as PyList
import json

@dataclass
class metadata:
docType:str

@dataclass
class spr:
sprType:str

@dataclass
class nMI:
idx:int

@dataclass
class bene:
bid:int
put:str

@dataclass
class ttd(metadata,spr,nMI):
bn:list[bene]

json_str = '''{
"docType":"abc",
"sprType":"def",
"idx":2,
"bn":[{
"bid":3, "put":"out"}]
}'''

def printMethod(t:metadata):
print(t)

def printMethod1(t:spr):
print(t)

def processMethod(t:ttd):
printMethod(t.metadata)
printMethod1(t.spr)

data = json.loads(json_str)

t=ttd(**data)

print(t)
# this prints the dictionary correctly

# ttd(idx=2, sprType='def', docType='abc', bn=[{'bid': 3, 'put': 'out'}])

processMethod(t)

Я получаю значение json и десериализую его в объекты, используя класс данных. В ProcessMethod я получаю эту ошибку AttributeError: объект «ttd» не имеет атрибута «метаданные». Любые предложения, пожалуйста. Я хотел хранить значения в отдельных объектах для удобства обработки. Я не совсем знаком с наследованием и классами данных, и это в Python 3.11

Подробнее здесь: https://stackoverflow.com/questions/790 ... python3-11

Вернуться в «Python»