问题
现在有这样的一个字典数据,想使用 @dataclass 的方式来实现,但是没有实现出来,请问怎么实现?
{ "id":0,
"name":"小明",
"pets":[
{"id":1, "name":"dog"}
]
}
现在创建两个类
from dataclasses import dataclass, asdict
@dataclass
class Pet:
id:int = 0
name:str = None
@dataclass
class Person:
id:int = 0
name: str = None
pets = list[Pet] # 希望用来表示列表 中存储类
if __name__ == '__main__':
p = Pet()
p.id = 1
p.name = "dog"
user =Person()
user.id = 1
user.name = "小明"
user.pets.append(p)
print(asdict(user))
运行结果
报错信息
报错
Traceback (most recent call last):
File "/Users/zack/PycharmProjects/goods.py", line 24, in <module>
user.pets.append(p)
TypeError: descriptor 'append' for 'list' objects doesn't apply to a 'Pet' object
环境
Mac Python3.10