首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Ruamel.Yaml注释键/值对

使用Ruamel.Yaml注释键/值对
EN

Stack Overflow用户
提问于 2021-12-02 14:08:21
回答 1查看 15关注 0票数 0

我需要完全使用ruamel.yaml注释一个键/值对。类似于:

代码语言:javascript
复制
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)

输出:

代码语言:javascript
复制
# foo: bar

当然,对于多行yaml键/值对,它需要注释整个值:

代码语言:javascript
复制
foo:
 - item1
 - item2

代码语言:javascript
复制
# foo:
#  - item1
#  - item2
EN

回答 1

Stack Overflow用户

发布于 2021-12-02 14:41:46

您将无法使用现有的添加注释的例程来执行示例。在ruamel.yaml中,这些注释要么附加到字典(即CommentedMap),要么附加到列表(CommentedSeq),而您的最终结果两者都没有。

您需要转储加载的code,并使用.dump()transform参数添加行首#序列。

(尽管您不需要这样做,但是可以对从YAML文档加载的数据结构的某些子部分这样做。您需要将键值对转储为新的dict (同样使用transform参数),并在前面的键上插入/更新结果作为注释,并在前面加上一个换行符。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70200965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档