将一个数据类转换为字典类型的字段,其中另一个数据类为键值



如何将数据类转换为python字典?在这种情况下,数据类的一个字段包含一个字典,其键是另一个数据类。在某种程度上,似乎有必要将嵌套的数据类转换为元组

@dataclass(frozen=True)
class Two:
a:str = 'World'
@dataclass
class First:
a: str = 'Hello'
b: set[Two] = field(default_factory=lambda: set())
c: defaultdict = field(default_factory=lambda: defaultdict(set))
d: defaultdict[Two, set] = field(default_factory=lambda: defaultdict(set))
f: str = None
obj = First()
obj.b.add(Two())
obj.d[Two('!')].add(1)
obj
我有以下代码,但不幸的是它抛出了一个错误:
import dataclass_factory

factory = dataclass_factory.Factory()
factory.dump(obj)
# TypeError: unhashable type: 'dict'
from dataclasses import dataclass, asdict
@dataclass
class Person:
name: str
age: int
address: str
phone: str
person = Person("John", 30, "532 Main Street", "555-434-502")
person_dict = asdict(person)
print(person_dict)
# Output: {'name': 'John', 'age': 30, 'address': '123 Main Street'}

要将Python的dataclass转换为字典,可以使用dataclasses模块提供的asdict函数。

希望这将引导您在正确的方向,虽然我不确定嵌套的dataclasses

最新更新