问题标签 [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 投票
1 回答
10072 浏览

python - 强制 pyYAML 持续转储

为什么以上两个的输出dumps不同?是否可以强制pyYAML拆分list总是?

0 投票
2 回答
10717 浏览

python - 使用 PyYaml 将 Python 字典转换为 yaml 文档

我有两个要写入单个 yaml 文件的 python 字典,其中包含两个文档:

yaml 文件应如下所示:

使用 PyYaml 我没有找到明确的方法来做到这一点。我确信有一个简单的方法,但是深入研究 PyYaml 文档,只会让我感到困惑。我需要翻斗车、发射器还是什么?这些类型中的每一种都会产生什么类型的输出?Yaml 文本?yaml 节点?YAML 对象?无论如何,我将不胜感激任何澄清。


以下是unutbu的回答,这是我能想到的最简洁的版本:

DeriveYAMLObjectWithTag 是一个创建新类的函数,它从 YAMLObject 派生并带有所需的标签:

以下是如何使用 DeriveYAMLObjectWithTag 获取所需的 Yaml:

感谢所有回答的人。我似乎在 PyYaml 中缺少功能,这是克服它的最优雅的方法。

0 投票
3 回答
29059 浏览

python - 格式化 PyYAML dump() 输出

我有一个字典列表,我想对其进行序列化:

产生以下内容:

但我想得到这个:

PyYAML文档非常简短地讨论了dump()参数,并且似乎没有关于这个特定主题的任何内容。

手动编辑文件以添加换行符大大提高了可读性,之后结构仍然加载得很好,但我不知道如何让转储方法生成它。

一般来说,除了简单的缩进之外,有没有办法更好地控制输出格式?

0 投票
11 回答
760264 浏览

python - 如何为 Python 安装 yaml 包?

我有一个使用 YAML 的 Python 程序。我尝试使用它在新服务器上安装它pip install yaml,它返回以下内容:

如何为 Python 安装 yaml 包?我正在运行 Python 2.7。(操作系统:Debian Wheezy)

0 投票
1 回答
93975 浏览

python - 使用 Python 读取 YAML 文件会导致 yaml.composer.ComposerError: expected a single document in the stream

我有一个看起来像的 yaml 文件

我可以使用 YAML 在 Perl 中正确读取此内容,但不能在使用 YAML 的 python 中正确读取。它失败并出现错误:

期望流中有一个文档

程序:

错误:

0 投票
1 回答
3748 浏览

python - 元组元组的 PyYAML 自定义标记

我打算将 PyYAML 用于配置文件。该配置文件中的一些项目是元组的 Python 元组。所以,我需要一种方便的方式来表示它们。使用 PyYAML 可以如下表示元组的 Python 元组

但是,对于长序列的项目,这不是方便的表示法。我认为应该可以定义一个自定义标签,比如 python/tuple_of_tuples。即类似的东西

请参阅下面我第一次尝试定义它,通过模仿 python/tuple 的定义方式,并尝试进行类似的子类化。它失败了,但我想知道我在追求什么。我有第二次尝试,但它是作弊,因为它只是调用eval.

如果我找不到更好的东西,我会使用它。但是,YAML 旨在替代使用 INI 文件的 ConfigObj,它的功能远不如 YAML,我eval对元组的元组使用了相同的方法(即 )。所以在这方面它不会更糟。

一个适当的解决方案将是最受欢迎的。

我对我的第一个解决方案有几点意见。

  1. 我原以为构造函数 construct_python_tuple_of_tuples会返回完整的结构,但实际上它似乎返回一个空结构,如下所示

    我跟踪了这​​些调用,调用之后似乎发生了很多复杂的事情construct_python_tuple_of_tuples

    返回的值是整数列表的元组,因此非常接近所需的结果。因此,结构必须稍后完成。

    该行与

    是我试图将元组列表强制为元组的元组,但如果我从 中返回它construct_python_tuple_of_tuples,那么结果调用yaml.load("!!python/tuple_of_tuples [[1,2], [3,4]]")就是

    /li>
  2. 不知道是什么

    为什么是 2002 年?

第一次尝试

结果是

第二次尝试

结果是:

0 投票
0 回答
94 浏览

serialization - 有没有办法保护 PyYAML?

考虑到这一点:

http://nedbatchelder.com/blog/201302/war_is_peace.html

有没有办法.load安全地使用方法来获取类实例而不仅仅是字典?

比如说,像 use 一样 .safe_load,验证 object 是否符合犹太教规定,然后 use .load。它会带来一些风险吗?这是可行的、安全的、实用的吗?

顺便说一句,Thrift 或 Avro 等框架是否提供有效的安全功能?这里是否有人在这些项目中工作得足够深入,可以说是否已经解决了安全问题?

0 投票
1 回答
251 浏览

python - 解析yaml python

yaml 标记中有一个文件

如何使用python(2.7.x)和PyYAML获取x?

0 投票
1 回答
5286 浏览

python - 禁用 PyYAML 值转换

我刚刚开始使用PyYAML转换一些数据。

我只是使用这个yaml.load函数,它对我来说已经足够好了,直到我注意到它试图将所有值转换为 uni-coded string、int、dates 等等。

这在我的应用程序中可能是致命的,有没有办法避免这种转换?我想以字符串的形式接收所有内容。我查看了构造函数,找不到禁用此转换的方法。

更新:我得到的yaml.load是一个OrderedDict,一切看起来都很好。唯一的问题是有些值是字符串,有些是整数。我想将所有值都作为字符串。我不希望 pyyaml 为我转换值。

0 投票
2 回答
1550 浏览

python - 如何在没有 ROOT ACCESS 的情况下安装 python 模块 YAML(“easy_install”和“pip”不可用)?

我正在尝试运行一个调用服务器上的yaml 模块的 python 脚本。我只有在我的主目录中有写权限。服务器安装了 Python 2.7.3。我没有root访问权限。此外,pipeasy_install都不可用。

我已经下载了包并尝试运行

这给出了错误

我怎样才能让它工作?