python:PyYAML模块无法解析为对象

时间:2015-09-28 16:29:09

标签: python yaml pyyaml

尝试获取一个YAML文档来解析我可以操作的python字典对象。我安装了filter: grayscale(0%)

pip install pyyaml

令我惊讶的是它返回一个字符串而不是字典!我在这里做错了什么?

2 个答案:

答案 0 :(得分:3)

太多的空白。

>>> import yaml
>>> yamlstring = "some: var\nanother: 3"
>>> type(yaml.load(yamlstring))
dict

答案 1 :(得分:2)

如果要从YAML字符串生成数据结构,使用三重引用字符串更有意义,使用转义换行符启动它们并以换行符结束它们。您的示例将如下所示:

import yaml
yamlstring = """\
some: var
another: 3
"""
type(yaml.load(yamlstring))

这样就可以更容易地发现another之前的额外空间,因为这会缩小YAML“结构”。

如果要嵌套在函数中(因此具有前导空格),请使用dedent标准库中的textwrap来删除该额外的前导空格。

相关问题