我试图转储一个自定义对象,这是一个对象列表。因此,我重写了YAMLOBject
类的to_yaml
方法,我将我的类设置为从中继承:
@classmethod
def to_yaml(cls, dumper, data):
""" This methods defines how to save this class to a yml
file """
passage_list = []
for passage in data:
passage_dict = {
'satellite': passage.satellite.name,
'ground_station': passage.ground_station.name,
'aos': passage.aos,
'los': passage.los,
'tca': passage.tca,
}
passage_list.append(passage_dict)
passage_list_dict = {
'passages': passage_list
}
return dumper.represent(passage_list_dict)
当我调用yaml.dump
方法时,将使用正确的数据正确地创建输出文件:
但在执行的最后我得到了一个EmitterError: expected NodeEvent, but got DocumentEndEvent()
我认为这与没有正确关闭YAML文档有关,因为当我调试代码时,我得到了save_to_file
文件,这些文件在文档末尾缺少新行。会吗?还是别的什么?在
您的代码无法工作,因为
dumper.represent
不返回任何内容。您想改用dumper.represent_data
。在相关问题 更多 >
编程相关推荐