问题标签 [ruamel.yaml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3474 浏览

python - 如何使用 ruamel.yaml 在 Python 中向 YAML 插入注释行?

我有一个这样的结构,我想使用以下方式添加注释行ruamel.yaml

现在,我想插入注释行(不是 eol_comments)使其看起来像这样:

我知道,我可以使用添加 eol_comments ruamel.yaml,但我没有找到添加整个注释行的方法。

0 投票
1 回答
703 浏览

ruamel.yaml - ruamel.yam 没有保留所有评论

原始 YAML 文件是

在python中,我做到了

output_str 变为

和comment3 和comment4 消失。这是设计的还是错误的?

0 投票
1 回答
2392 浏览

python - 将 YAML 多行值转换为折叠块标量样式?

0 投票
13 回答
54536 浏览

python - Conda 'ImportError:没有名为 ruamel.yaml.comments 的模块'

当我使用它运行任何命令时,Conda 会出错。

0 投票
1 回答
219 浏览

python - deepcopy 后时间戳的 ruamel.yaml 格式似乎已损坏

我有一个需要deepcopy其参数 dict 的函数,因为它计划对一些嵌套键进行更改。但是当我deepcopy从 中OrderedDict返回时ruamel.yaml.round_trip_load,它会丢失一些显然需要的元数据,以便TimeStamp正确打印数据类型。

我正在寻找可以传递给它的选项round_trip_dump以强制它以上述格式(T而不是空格)打印时间戳,或者在不破坏其元数据的情况下深度复制 ruamel.yaml 返回值的方法。

0 投票
1 回答
1348 浏览

python - 如何使用 ruamel.yaml 添加节点

我尝试按照示例添加一个新节点,但是:

给我一个错误:

我正在使用 ruamel.yaml v0.13.7

我究竟做错了什么?

0 投票
1 回答
180 浏览

python - 为*没有*通过 RoundTripLoader 加载的数据结构生成注释?

我有一个数据结构,我想添加注释,然后转换为 YAML。

我想避免将数据结构输出为 YAML 并使用RoundTripLoader.

有没有办法将我的数据结构转换为支持 ruamel.yaml 注释接口的数据结构?

0 投票
1 回答
826 浏览

python - 为什么 PyYAML 使用生成器来构造对象?

我一直在阅读 PyYAML 源代码,试图了解如何定义一个可以添加的正确构造函数add_constructor。我现在对该代码的工作原理有了很好的理解,但我仍然不明白为什么其中的默认 YAML 构造函数SafeConstructor是生成器。例如,方法construct_yaml_mapSafeConstructor

我了解生成器如何用于以下方式来存根一个对象,并且如果传递给BaseConstructor.construct_object它,则仅使用来自节点的数据填充它:deep=Falseconstruct_mapping

而且我了解在forBaseConstructor.construct_document的情况下如何生成数据。deep=Falseconstruct_mapping

我不明白的是存根数据对象并通过在construct_document. 是否必须这样做以支持 YAML 规范中的某些内容,或者它是否提供了性能优势?

This answer on another question有点帮助,但我不明白为什么这个答案会这样:

而不是这个:

我已经测试过后一种形式适用于其他答案上发布的示例,但也许我错过了一些极端情况。

我正在使用 3.10 版的 PyYAML,但看起来有问题的代码在 PyYAML 的最新版本(3.12)中是相同的。

0 投票
2 回答
6018 浏览

python - 在 ruamel.yaml 中保留引号

ruamel.yaml用于修改 YAML 文件。我的要求是为现有密钥添加一个值,保留包括订单在内的所有其他内容。我让它工作了,但看起来其他键/值的引号也在这个过程中被修改了。

  1. 在某些情况下,双引号会转换为单引号。例如

    /li>
  2. 在其他一些情况下,报价会被完全删除。例如:

    /li>

这两种情况都出现在同一个文件中。我怎样才能阻止这种情况发生并保留原样的引号?

load_yaml_guess_indent()用于加载和round_trip_dump()写回它。

0 投票
1 回答
3012 浏览

python - 防止长行被包裹在 ruamel.yaml

我使用load_yaml_guess_indent(f, preserve_quotes=True)来读取 YAML 文件,然后对其进行修改并将其写回。我注意到当它们被写回时,长行被包裹起来。(在 80-85 个字符后插入换行符。)是否有我可以传递的参数来阻止这种情况发生?