Mar*_*kus 12 python python-dataclasses
我有一个数据类,如下所示:
@dataclass
class myClass:
id: str
mode: str
value: float
Run Code Online (Sandbox Code Playgroud)
这导致:
dataclasses.asdict(myClass)
{"id": id, "mode": mode, "value": value}
Run Code Online (Sandbox Code Playgroud)
但我想要的是
{id:{"mode": mode, "value": value}}
Run Code Online (Sandbox Code Playgroud)
我认为我可以通过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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6334 次 |
| 最近记录: |