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.
尝试获取 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.