我需要完全使用ruamel.yaml注释一个键/值对。类似于:
import sys
from ruamel.yaml import YAML
inp = """\
# example
foo: bar
"""
yaml = YAML()
code = yaml.load(inp)
code['foo'].comment() # or whatever, can't seem to find a way to do this with existing api
yaml.dump(code, sys.stdout)输出:
# foo: bar当然,对于多行yaml键/值对,它需要注释整个值:
foo:
- item1
- item2至
# foo:
# - item1
# - item2发布于 2021-12-02 14:41:46
您将无法使用现有的添加注释的例程来执行示例。在ruamel.yaml中,这些注释要么附加到字典(即CommentedMap),要么附加到列表(CommentedSeq),而您的最终结果两者都没有。
您需要转储加载的code,并使用.dump()的transform参数添加行首#序列。
(尽管您不需要这样做,但是可以对从YAML文档加载的数据结构的某些子部分这样做。您需要将键值对转储为新的dict (同样使用transform参数),并在前面的键上插入/更新结果作为注释,并在前面加上一个换行符。)
https://stackoverflow.com/questions/70200965
复制相似问题