问题标签 [pyyaml]

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 投票
2 回答
260633 浏览

python - 如何在文件中写入 YAML 格式的数据?

我需要使用 Python 将以下数据写入 yaml 文件:

即,字典中的字典。我怎样才能做到这一点?

0 投票
1 回答
1295 浏览

python - 使用 PyYAML 选择性地转储对象属性

我可以使用 YAML 转储 python 对象的层次结构,所以:

产生输出:

但我想有选择地隐藏一些属性。所以假设我有一个函数attribs_to_dump(obj),它为任何对象返回我想要转储的属性名称列表,例如:

attribs_to_dump我的问题是,我如何连接yaml.dump才能获得以下输出?

有一个复杂的因素:我想通过挂钩到 Yaml 来实现效果,因为它在对象层次结构上爬行,而不是自己预处理对象层次结构。setattr/getattr/__dict__原因是由于我正在使用的某些库中存在的魔法,并非层次结构中的所有对象都易于自省:-(...

非常感谢所有帮助!

0 投票
1 回答
515 浏览

pyyaml - PyYAML 转储对象路径

我在使用 PyYAML 转储和加载 YAML 文件时遇到问题。

我有两个分开的应用程序 A 和 B。我想在 A 中转储一个 YAML 文件,然后加载它并在 B 中使用它。但是对象的路径似乎不正确。

在 dump.py 中,我有如下代码:

它提供了一个 YAML 文件:

然后我需要在 use.py 中使用这个 YAML 文件。但我无法将它正确加载为 the_module.the_module.the_class 的实例。它说:

我试图在另一个模块 B-folder.adaptor 中进行转储,在 dump.py 中它只是调用 B-folder.adaptor 中的方法,但它仍然给出相同的结果。

如何处理?谢谢。

0 投票
3 回答
12415 浏览

python - “!”上的 pyYAML 错误 在一个字符串中

首先,免责声明:我对 YAML 不太熟悉。我正在尝试将 YAML 文档解析为键值对(不要担心我是怎么做的。我已经处理好了)

我的文件曾经看起来像:

然后,有人去改了。

我得到这个解析错误:

这甚至意味着什么?我将如何让它仅将 !$ 解释为两个字符?我只想要一个字符串键和值的字典!此外,编辑 yaml 文件不是一种选择。必须使用解析器在代码中修复问题。

0 投票
2 回答
986 浏览

python - PyYAML,如何对齐地图条目?

我使用 PyYAML 将 python 字典输出为 YAML 格式:

输出是:

但我想:

有没有解决这个问题的简单方法,即使是次优的?

0 投票
3 回答
1781 浏览

python - PyYAML 可以解析 iso8601 日期吗?

根据 YAML 规范,应识别带时区的 iso8601 日期。但是,在尝试使用 PyYAML 3.10(在 Windows 7 上使用 ActivePython 2.7.2.5)解析它们时,我得到了天真的日期:

(第一种格式是严格的 iso8601,第二种是“宽松”格式;示例直接取自 YAML 规范。)

这是预期的行为,还是我的 PyYaml 无法正常工作?

0 投票
5 回答
22554 浏览

python - PyYAML:控制由 yaml.load() 调用的项目的顺序

我有一个 yaml 设置文件,它在 db 中创建一些记录:

当我使用setting3更新此文件并通过以下方式在 db 中重新生成记录时:

每次将它们添加到数据库时,它们的设置顺序(数据库中的 id 编号)都保持相同,这一点至关重要……而 setting3 只是被附加到 yaml.load() 的末尾,这样它的 id 就不会了t混淆已经在数据库中的任何记录......目前每次我添加另一个设置并调用 yaml.load() 记录以不同的顺序加载,从而导致不同的 id。我欢迎任何想法;)

编辑: 我遵循了abarnert 的提示并采取了这个要点https://gist.github.com/844388

按预期工作谢谢!

0 投票
4 回答
6917 浏览

python - 解析 YAML,返回行号

我正在从 YAML 数据创建一个文档生成器,它将指定每个项目是从 YAML 文件的哪一行生成的。做这个的最好方式是什么?所以如果 YAML 文件是这样的:

我想要这样的东西:

我目前正在使用 PyYAML,但如果我可以从 Python 中使用它,任何其他库都可以。

0 投票
2 回答
7708 浏览

python - 向使用 PyYaml 生成的 YAML 添加注释

我正在使用 PyYaml 从我自己的 python 对象创建 Yaml 文档。例如我的对象:

变成:

到现在为止还挺好。

但我还没有找到一种以编程方式向生成的 yaml 添加注释的方法,所以它看起来像:

查看 PyYaml 文档和代码,我发现没有办法这样做。

有什么建议么?

0 投票
1 回答
3996 浏览

yaml - 为 PyYAML 转储的一部分指定样式

我将 YAML 用于计算机,将人工可编辑和可读的输入格式用于模拟器。对于人类可读性,输入的某些部分大多适合块样式,而流样式更适合其他部分。

PyYAML 的默认设置是在任何有嵌套映射或序列的地方使用块样式,而在其他任何地方都使用流样式。*default_flow_style* 允许选择全流式或全块式。

但我想输出更多形式的文件

可以看出,这并没有遵循始终一致的样式模式,而是根据文件的部分而变化。本质上,我希望能够指定某些块样式序列中的所有值都是流样式。有什么方法可以对倾销进行精细控制吗?能够以特定顺序转储顶级映射而不需要该顺序(例如,omap)对于可读性也很好。