强制YAML值为字符串

时间:2012-08-17 20:30:30

标签: python yaml

在Python 2.7下查看此代码:

>>> import yaml
>>> yaml.load('string: 01')
{'string': 1}
>>> :(

是否可以在不修改yaml文件的情况下获取字符串01?我在文档中找不到任何内容。

2 个答案:

答案 0 :(得分:9)

尝试:

>> import yaml
>> yaml.load('string: 01', Loader=yaml.loader.BaseLoader)
{u'string': u'01'}

答案 1 :(得分:0)

我一直在寻找完全相反的效果:数字被转换为st,但数字却被转换为wanted。我不小心使用了BaseLoader(该复制粘贴!)。

LOADER 是答案,正如@KonradHałas所说的那样。

强制字符串:

yaml.load('string: 01', Loader=yaml.loader.BaseLoader)

强制编号:(默认)

yaml.load('string: 01', Loader=yaml.loader.SafeLoader)

有关弃用和详细信息的链接:

https://github.com/yaml/pyyaml/wiki/PyYAML-yaml.load(input)-Deprecation