【发布时间】:2020-12-25 00:37:01
【问题描述】:
这是我的代码:
import ruamel.yaml
import pathlib
class YamlLoader:
@staticmethod
def safe_load(filename):
filepath = pathlib.Path(filename)
with open(filepath) as stream:
if ruamel.yaml.version_info < (0, 15):
data = ruamel.yaml.safe_load(stream)
else:
yml = ruamel.yaml.YAML(typ='safe', pure=True)
data = yml.load(stream)
return data
@staticmethod
def save(yaml, filename):
filepath = pathlib.Path(filename)
if ruamel.yaml.version_info < (0, 15):
ruamel.yaml.safe_dump(yaml, filepath)
else:
ruamel.yaml.YAML.dump(yaml, filepath)
我在main.py中的代码:
data = YamlLoader.safe_load("data.yaml")
print(data)
然后我在变量中获取我的 YAML 数据。
但是,当我这样做时:
YamlLoader.save(data, "output.yaml")
我收到错误消息:
Traceback(最近一次调用最后一次):文件“”,第 1 行,in 文件 “/usr/local/lib/python3.8/site-packages/ruamel/yaml/main.py”,行 434,转储中 if self._context_manager: AttributeError: 'CommentedMap' 对象没有属性 '_context_manager'
很可能我以错误的方式使用 API,但我不知道问题出在哪里。
【问题讨论】: