解析字符串 (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.