我有包含其他数据类作为其字段的数据类:
@dataclass
class Bar:
abc: int
bed: int
asd: int
@dataclass
class Foo:
xy: int
yz: Bar
然后我尝试通过 pandas 将其序列化为 csv,如下所示:
dataset = [Foo(xy=1, yz=Bar(abc=1, bed=2, asd=3))]
pd_dataset = pandas.DataFrame(vars(row) for row in dataset)
pd_dataset.to_csv('dataset_example.csv', index=False)
但我得到的结果与我想要达到的结果有点不同。准确地说,我现在得到:
xy,yz
1,"Bar(abc=1, bed=2, asd=3)"
而且我要:
xy,yz_abc,yz_bed,yz_asd
1,1,2,3
你能帮我把它弄好吗?我尝试编写自己的序列化函数并执行以下操作: pandas.DataFrame(asdict(row, dict_factory=row_to_dict) for row in dataset)
但我不知道如何正确编写它。
从
vars(Bar)
仔细创建所需的密钥可以做你想做的事。