解析字符串 (Str)

StrictYAML 解析为 YAML 对象,而不是直接解析为值,从而为您提供更多灵活性,并控制您可以对 YAML 执行的操作。

这就是该对象可以执行的操作 - 在大多数情况下,如果解析为字符串,它将以相同的方式执行。

示例 yaml_snippet

a: 1
b: yes
c: â string
d: |
  multiline string
from strictyaml import Str, Map, load
from ensure import Ensure

schema = Map({"a": Str(), "b": Str(), "c": Str(), "d": Str()})

parsed = load(yaml_snippet, schema)

正确解析

Ensure(parsed).equals(
    {"a": "1", "b": "yes", "c": u"â string", "d": "multiline string\n"}
)

字典查找转换为字符串

Ensure(str(parsed["a"])).equals("1")

字典查找转换为整数

Ensure(int(parsed["a"])).equals(1)

字典查找转换为布尔值是不可能的

bool(parsed["a"])
:
Cannot cast 'YAML(1)' to bool.
Use bool(yamlobj.data) or bool(yamlobj.text) instead.

可执行规范

scalar-string.story storytests 自动生成的文档。