gpt4 book ai didi

python - pyYAML,期望 NodeEvent,但得到 DocumentEndEvent

转载 作者:太空宇宙 更新时间:2023-11-04 05:12:37 25 4
gpt4 key购买 nike

我正在尝试转储一个自定义对象,这是一种对象列表。所以我覆盖了 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 方法时,会使用正确的数据正确创建输出文件:

if save_to_file:
with open(save_to_file, 'w') as f:
yaml.dump(all_passages, f, default_flow_style=False)

但在执行结束时我得到了一个EmitterError: expected NodeEvent, but got DocumentEndEvent()

我认为这与没有正确关闭 YAML 文档有关,因为当我调试我的代码时,我得到的 save_to_file 文件在文档末尾缺少新行。可能吗?或者是别的什么?

最佳答案

您的代码不起作用,因为 dumper.represent 未返回任何内容。您想改用 dumper.represent_data

关于python - pyYAML,期望 NodeEvent,但得到 DocumentEndEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42612264/

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