ruamel.yaml相关内容

在 ruamel.yaml 迭代期间获取评论

我如何在遍历 YAML 对象时获取注释 yaml = YAML()使用 open(path, 'r') 作为 f:yaml_data = yaml.load(f)对于 yaml_data 中的 obj:# 如何在这里获得评论? 这是源数据(ansible playbook) ---- 名称:使用自定义模块收集所有复杂的自定义事实主机:交换机收集事实:错误连接:本地任务:# ansible 2 ..
发布时间:2022-01-14 11:12:44 Python

如何读取/加载带有前导零的yaml参数作为字符串?

如何读取/加载带有前导零的 YAML 参数作为字符串并在 python 3.7 中进行操作?从使用 yaml-cpp(yaml 1.2) 的 C++ 工具中,我得到一个包含 leading_zero: 00005 的文本文件.读取/加载这行代码,好像转换成int,但是为什么呢?你知道如何处理带有前导零的 YAML 字符串吗? ruamel.yaml (yaml 1.2) 导入系统从 rua ..
发布时间:2022-01-14 11:06:57 其他开发

如何为 ruamel.yaml 创建自定义 yaml 映射转储程序?

我正在尝试为某些配置对象制作自定义 YAML 转储程序/加载程序.为简单起见,假设我们要将 Hero 类的对象转储到 hero.yml 文件中. 使用默认 dumper/loader 的示例 类英雄:yaml_tag = '!英雄'def __init__(自我,姓名,年龄):self.name = 名称自我年龄 = 年龄 然后通过ruamel.yaml 添加默认的loader/dum ..
发布时间:2022-01-14 11:06:21 Python

如何读取 YAML 文件中的组件,以便我可以使用 ruamel.yaml 编辑它的键值?

这是我的 YAML 文件(input.yaml): 团队成员:姓名:马克斯爱好:- 阅读队长:姓名:斯图尔特爱好:- 跳舞 我想编辑此 YAML 文件以在关键“爱好"中添加更多值,例如: 团队成员:姓名:马克斯爱好:- 阅读- 绘画队长:姓名:斯图尔特爱好:- 跳舞- 钓鱼 我尝试实现代码 Anthon 以适应我的情况,但它根本没有帮助,因为缩进级别该 YAML 文件与我的不同. 示例: ..
发布时间:2022-01-14 10:49:20 Python

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

我一直在阅读 PyYAML 源代码,试图了解如何定义一个合适的构造函数,我可以使用 add_constructor 添加该构造函数.我现在对该代码的工作原理有了很好的理解,但我仍然不明白为什么 SafeConstructor 中的默认 YAML 构造函数是生成器.比如SafeConstructor的方法construct_yaml_map: defconstruct_yaml_map(self, ..
发布时间:2022-01-14 10:42:03 Python

使用 Python 在 YAML 中获取重复键

我们需要解析包含重复键的 YAML 文件,所有这些都需要解析.跳过重复是不够的.我知道这违反了 YAML 规范,我不想这样做,但我们使用的第三方工具支持这种用法,我们需要处理它. 文件示例: 构建:步骤:'步骤 1'建造:步骤:'步骤 2' 解析后我们应该有一个类似的数据结构: yaml.load('file.yml')# [('build', [('step', 'step1')]) ..
发布时间:2022-01-14 10:41:31 Python

将对象转储到不带引号的 yaml 中

我有一些对象想变成 yaml,唯一的问题是我需要能够将“!任何东西"放入 yaml 中.没有引号. 当我使用 pyyaml 进行尝试时,我的 yaml 文件中最终会出现 '!anything'. 我已经尝试过使用 ruamel.yaml PreservedScalarString 和 LiteralScalarString.它有点工作,但不是我需要的工作方式.问题是我最终得到了如下所示 ..
发布时间:2021-10-04 19:08:42 Python

Ruamel.yaml:如何在加载的 OrderedDict 中访问合并键和注释

我有一个 Python 程序,它正在解析许多 YAML 文件,其中一些包含我希望在将 YAML 文件加载到解析器时保留的注释、锚点、引用和合并键.ruamel.yaml 在我运行以下命令时似乎对这些进行了往返保存: with open(yaml_file, "r") as f:yaml = f.read()parsed_yaml = ruamel.yaml.load(yaml, ruamel. ..
发布时间:2021-10-04 19:08:09 Python

有问题转义单引号

在使用 ruamel.yaml 向 yaml 添加新值时,我很难转义单引号. 下面是我在做的 导入系统从 ruamel.yaml 导入 YAMLyaml_doc = """\映射:价值观:'123':'不'"""yaml = yaml()yaml.preserve_quotes = True数据 = yaml.load(yaml_doc)new_value = 数据['映射']['值']n ..
发布时间:2021-10-04 19:08:06 Python

在python中禁用yaml文件的别名

我有一个问题,我希望防止别名出现在我的 YAML 文件中.无论如何我可以禁用生成的 YAML 文件中的别名,以实现预期的输出? 我当前拥有的 YAML 文件如下: 代理:- 开始:[0, 0]目标:[2, 0]名称:agent0- 开始:[2, 0]目标:[0, 0]名称:agent1地图:尺寸:[3, 3]障碍:- !!python/元组 [0, 1]- !!python/元组 [2, ..
发布时间:2021-10-04 19:06:37 Python

ruamel.yaml 用于自定义标签的自定义 CommentedMapping

我有一个带有自定义标签的 YAML 文件,如下所示: flow123d_version: 3.1.0问题:!modulek.Coupling_Sequential描述:简单的双孔隙率测试 - 稳定流动,简单运输网:网格文件:../00_mesh/square_1x1_40el.mshflow_equation: !Flow_Darcy_MH非线性求解器:线性求解器:!Petsca_tol: 1. ..
发布时间:2021-10-04 19:06:31 Python

在 ruamel.yaml 中的迭代过程中获得评论

在遍历 YAML 对象时如何获取注释 yaml = YAML()使用 open(path, 'r') 作为 f:yaml_data = yaml.load(f)对于 yaml_data 中的 obj:# 如何获得这里的评论? 这是源数据(ansible playbook) ---- 名称:使用自定义模块收集所有复杂的自定义事实主机:交换机收集事实:错误连接:本地任务:# ansible 2. ..
发布时间:2021-10-04 19:02:12 Python

使用 ruamel.yaml 删除最后一个 dict 键时保留以下注释

我正在尝试使用 ruamel.yaml Python 库从大型 YAML 文件中的嵌套字典中删除一些键/值对,同时保留周围的注释.这是我正在使用的代码的简化版本: 导入系统导入 ruamel.yaml使用 open(sys.argv[1], 'r') 作为文档:解析 = ruamel.yaml.round_trip_load(doc,preserve_quotes=True)对于已解析 ['it ..
发布时间:2021-10-04 19:00:01 Python

如何读取/加载前导零作为字符串的yaml参数?

如何读取/加载前导零作为字符串的 YAML 参数并在 python 3.7 中操作?从使用 yaml-cpp(yaml 1.2) 的 C++ 工具中,我得到一个包含 leading_zero: 00005 的文本文件.读取/加载这行代码,好像转成int了,但是为什么呢?你知道如何处理带前导零的 YAML 字符串吗? ruamel.yaml (yaml 1.2) 导入系统从 ruamel.y ..
发布时间:2021-06-28 19:05:46 其他开发

使用ruamel.yaml检索文档开头的注释

加载后,是否有一种方法可以使用ruamel.yaml在YAML文档的开头检索注释? 例如: yaml_str ="" \#文档开头的注释date:20210326#关于密钥对的注释“" 我知道如何检索日期的评论: 从ruamel.yaml 导入YAMLyml = YAML(typ ='rt')数据= yml.load(yaml_str)评论= data.ca.items.get( ..
发布时间:2021-04-23 19:38:42 Python

如何使用ruamel.yaml添加评论

我正在尝试使用ruamel.yaml创建数据结构,并想在转储和/或再次加载之前添加注释.不幸的是,所有示例都首先使用往返转储程序加载一些字符串,或者不再使用不再存在的API. 这就是我要转储的内容: test:asdf#测试注释! 我尝试了以下操作: insert = ruamel.yaml.comments.CommentedMap()start_mark = ruamel.yam ..
发布时间:2021-04-23 19:38:29 Python