使用yaml / oyaml进行类型转换的问题

时间:2019-07-17 08:19:01

标签: python python-3.x yaml

我有一个带有以下行的YAML文件:

景点:

VT CODE : 0210

如果我使用yaml.safe_load读取了此文件,然后将其转储,则会得到:

景点:

VT Code : 136

我知道我可以使用引号将0210标记为字符串,但是我想知道yaml为何如此。

如果尝试:

print (int('0210'))

我得到210

所以我认为必须有更多的纯类型转换

1 个答案:

答案 0 :(得分:0)

以零开头的整数文字是基于YAML的on the spec herethe quick reference card here中的八进制文字。

如果您愿意,可以看到the PyYAML implementation parsing integer nodes here

作为种类的证明,您所看到的136代表了Python如何表示八进制,并带有一个0o前缀。

>>> oct(136)
'0o210'