问题标签 [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.
python - 强制 pyYAML 持续转储
为什么以上两个的输出dumps
不同?是否可以强制pyYAML
拆分list
总是?
python - 使用 PyYaml 将 Python 字典转换为 yaml 文档
我有两个要写入单个 yaml 文件的 python 字典,其中包含两个文档:
yaml 文件应如下所示:
使用 PyYaml 我没有找到明确的方法来做到这一点。我确信有一个简单的方法,但是深入研究 PyYaml 文档,只会让我感到困惑。我需要翻斗车、发射器还是什么?这些类型中的每一种都会产生什么类型的输出?Yaml 文本?yaml 节点?YAML 对象?无论如何,我将不胜感激任何澄清。
以下是unutbu的回答,这是我能想到的最简洁的版本:
DeriveYAMLObjectWithTag 是一个创建新类的函数,它从 YAMLObject 派生并带有所需的标签:
以下是如何使用 DeriveYAMLObjectWithTag 获取所需的 Yaml:
感谢所有回答的人。我似乎在 PyYaml 中缺少功能,这是克服它的最优雅的方法。
python - 格式化 PyYAML dump() 输出
我有一个字典列表,我想对其进行序列化:
产生以下内容:
但我想得到这个:
PyYAML文档非常简短地讨论了dump()
参数,并且似乎没有关于这个特定主题的任何内容。
手动编辑文件以添加换行符大大提高了可读性,之后结构仍然加载得很好,但我不知道如何让转储方法生成它。
一般来说,除了简单的缩进之外,有没有办法更好地控制输出格式?
python - 如何为 Python 安装 yaml 包?
我有一个使用 YAML 的 Python 程序。我尝试使用它在新服务器上安装它pip install yaml
,它返回以下内容:
如何为 Python 安装 yaml 包?我正在运行 Python 2.7。(操作系统:Debian Wheezy)
python - 使用 Python 读取 YAML 文件会导致 yaml.composer.ComposerError: expected a single document in the stream
我有一个看起来像的 yaml 文件
我可以使用 YAML 在 Perl 中正确读取此内容,但不能在使用 YAML 的 python 中正确读取。它失败并出现错误:
期望流中有一个文档
程序:
错误:
python - 元组元组的 PyYAML 自定义标记
我打算将 PyYAML 用于配置文件。该配置文件中的一些项目是元组的 Python 元组。所以,我需要一种方便的方式来表示它们。使用 PyYAML 可以如下表示元组的 Python 元组
但是,对于长序列的项目,这不是方便的表示法。我认为应该可以定义一个自定义标签,比如 python/tuple_of_tuples。即类似的东西
请参阅下面我第一次尝试定义它,通过模仿 python/tuple 的定义方式,并尝试进行类似的子类化。它失败了,但我想知道我在追求什么。我有第二次尝试,但它是作弊,因为它只是调用eval
.
如果我找不到更好的东西,我会使用它。但是,YAML 旨在替代使用 INI 文件的 ConfigObj,它的功能远不如 YAML,我eval
对元组的元组使用了相同的方法(即 )。所以在这方面它不会更糟。
一个适当的解决方案将是最受欢迎的。
我对我的第一个解决方案有几点意见。
我原以为构造函数
construct_python_tuple_of_tuples
会返回完整的结构,但实际上它似乎返回一个空结构,如下所示我跟踪了这些调用,调用之后似乎发生了很多复杂的事情
construct_python_tuple_of_tuples
。返回的值是整数列表的元组,因此非常接近所需的结果。因此,结构必须稍后完成。
该行与
是我试图将元组列表强制为元组的元组,但如果我从 中返回它
/li>construct_python_tuple_of_tuples
,那么结果调用yaml.load("!!python/tuple_of_tuples [[1,2], [3,4]]")
就是不知道是什么
为什么是 2002 年?
第一次尝试
结果是
第二次尝试
结果是:
serialization - 有没有办法保护 PyYAML?
考虑到这一点:
http://nedbatchelder.com/blog/201302/war_is_peace.html
有没有办法.load
安全地使用方法来获取类实例而不仅仅是字典?
比如说,像 use 一样 .safe_load
,验证 object 是否符合犹太教规定,然后 use .load
。它会带来一些风险吗?这是可行的、安全的、实用的吗?
顺便说一句,Thrift 或 Avro 等框架是否提供有效的安全功能?这里是否有人在这些项目中工作得足够深入,可以说是否已经解决了安全问题?
python - 解析yaml python
yaml 标记中有一个文件
如何使用python(2.7.x)和PyYAML获取x?
python - 禁用 PyYAML 值转换
我刚刚开始使用PyYAML转换一些数据。
我只是使用这个yaml.load
函数,它对我来说已经足够好了,直到我注意到它试图将所有值转换为 uni-coded string、int、dates 等等。
这在我的应用程序中可能是致命的,有没有办法避免这种转换?我想以字符串的形式接收所有内容。我查看了构造函数,找不到禁用此转换的方法。
更新:我得到的yaml.load
是一个OrderedDict
,一切看起来都很好。唯一的问题是有些值是字符串,有些是整数。我想将所有值都作为字符串。我不希望 pyyaml 为我转换值。
python - 如何在没有 ROOT ACCESS 的情况下安装 python 模块 YAML(“easy_install”和“pip”不可用)?
我正在尝试运行一个调用服务器上的yaml 模块的 python 脚本。我只有在我的主目录中有写权限。服务器安装了 Python 2.7.3。我没有root访问权限。此外,pip和easy_install都不可用。
我已经下载了包并尝试运行
这给出了错误
我怎样才能让它工作?