gpt4 book ai didi

python - 如何覆盖 Python Dataclass 'asdict' 方法

转载 作者:行者123 更新时间:2023-12-04 08:44:02 26 4
gpt4 key购买 nike

我有一个数据类,它看起来像这样:

@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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com