python-3.x 转换字段类型为dictionary的数据类,其中另一个数据类是keof dicty

n3h0vuf2  于 2023-01-03  发布在  Python
关注(0)|答案(1)|浏览(120)

如何将数据类转换为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'
8yparm6h

8yparm6h1#

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不太确定。

相关问题