我有一个数据类,它看起来像这样:
@dataclass
class myClass:
id: str
mode: str
value: float
这导致:dataclasses.asdict(myClass)
{"id": id, "mode": mode, "value": value}
但我想要的是{id:{"mode": mode, "value": value}}
我想我可以通过添加 to_dict
来实现这一点。方法到我的数据类,它返回所需的字典,但这不起作用。我怎样才能得到我想要的结果?
最佳答案
from dataclasses import dataclass, asdict
@dataclass
class myClass:
id: str
mode: str
value: float
def my_dict(data):
return {
data[0][1]: {
field: value for field, value in data[1:]
}
}
instance = myClass("123", "read", 1.23)
data = {"123": {"mode": "read", "value": 1.23}}
assert asdict(instance, dict_factory=my_dict) == data
关于python - 如何覆盖 Python Dataclass 'asdict' 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64422367/