python: PyYAML 模块未解析为对象

python: PyYAML module not parsing to object

尝试获取 YAML 文档以解析为我可以操作的 python 字典对象。我安装了 pip install pyyaml.

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

令我惊讶的是 returns 字符串不是字典!我在这里做错了什么?

空格过多。

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

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

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

这样就更容易在 another 之前发现额外的 space,因为这会缩进 YAML "structure".

如果您想嵌套在函数中执行此操作(因此具有前导白色space),请使用 textwrap 标准库中的 dedent 来删除多余的前导白色space.