问题标签 [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.
python - 如何使用 ruamel.yaml 在 Python 中向 YAML 插入注释行?
我有一个这样的结构,我想使用以下方式添加注释行ruamel.yaml
:
现在,我想插入注释行(不是 eol_comments)使其看起来像这样:
我知道,我可以使用添加 eol_comments ruamel.yaml
,但我没有找到添加整个注释行的方法。
ruamel.yaml - ruamel.yam 没有保留所有评论
原始 YAML 文件是
在python中,我做到了
output_str 变为
和comment3 和comment4 消失。这是设计的还是错误的?
python - Conda 'ImportError:没有名为 ruamel.yaml.comments 的模块'
当我使用它运行任何命令时,Conda 会出错。
python - deepcopy 后时间戳的 ruamel.yaml 格式似乎已损坏
我有一个需要deepcopy
其参数 dict 的函数,因为它计划对一些嵌套键进行更改。但是当我deepcopy
从 中OrderedDict
返回时ruamel.yaml.round_trip_load
,它会丢失一些显然需要的元数据,以便TimeStamp
正确打印数据类型。
我正在寻找可以传递给它的选项round_trip_dump
以强制它以上述格式(T
而不是空格)打印时间戳,或者在不破坏其元数据的情况下深度复制 ruamel.yaml 返回值的方法。
python - 为*没有*通过 RoundTripLoader 加载的数据结构生成注释?
我有一个数据结构,我想添加注释,然后转换为 YAML。
我想避免将数据结构输出为 YAML 并使用RoundTripLoader
.
有没有办法将我的数据结构转换为支持 ruamel.yaml 注释接口的数据结构?
python - 为什么 PyYAML 使用生成器来构造对象?
我一直在阅读 PyYAML 源代码,试图了解如何定义一个可以添加的正确构造函数add_constructor
。我现在对该代码的工作原理有了很好的理解,但我仍然不明白为什么其中的默认 YAML 构造函数SafeConstructor
是生成器。例如,方法construct_yaml_map
:SafeConstructor
我了解生成器如何用于以下方式来存根一个对象,并且如果传递给BaseConstructor.construct_object
它,则仅使用来自节点的数据填充它:deep=False
construct_mapping
而且我了解在forBaseConstructor.construct_document
的情况下如何生成数据。deep=False
construct_mapping
我不明白的是存根数据对象并通过在construct_document
. 是否必须这样做以支持 YAML 规范中的某些内容,或者它是否提供了性能优势?
This answer on another question有点帮助,但我不明白为什么这个答案会这样:
而不是这个:
我已经测试过后一种形式适用于其他答案上发布的示例,但也许我错过了一些极端情况。
我正在使用 3.10 版的 PyYAML,但看起来有问题的代码在 PyYAML 的最新版本(3.12)中是相同的。
python - 在 ruamel.yaml 中保留引号
我ruamel.yaml
用于修改 YAML 文件。我的要求是为现有密钥添加一个值,保留包括订单在内的所有其他内容。我让它工作了,但看起来其他键/值的引号也在这个过程中被修改了。
在某些情况下,双引号会转换为单引号。例如
前
后
/li>在其他一些情况下,报价会被完全删除。例如:
前
后
/li>
这两种情况都出现在同一个文件中。我怎样才能阻止这种情况发生并保留原样的引号?
我load_yaml_guess_indent()
用于加载和round_trip_dump()
写回它。
python - 防止长行被包裹在 ruamel.yaml
我使用load_yaml_guess_indent(f, preserve_quotes=True)
来读取 YAML 文件,然后对其进行修改并将其写回。我注意到当它们被写回时,长行被包裹起来。(在 80-85 个字符后插入换行符。)是否有我可以传递的参数来阻止这种情况发生?