我有一个带有以下行的YAML文件:
景点:
VT CODE : 0210
如果我使用yaml.safe_load读取了此文件,然后将其转储,则会得到:
景点:
VT Code : 136
我知道我可以使用引号将0210标记为字符串,但是我想知道yaml为何如此。
如果尝试:
print (int('0210'))
我得到210
所以我认为必须有更多的纯类型转换
答案 0 :(得分:0)
以零开头的整数文字是基于YAML的on the spec here和the quick reference card here中的八进制文字。
如果您愿意,可以看到the PyYAML implementation parsing integer nodes here。
作为种类的证明,您所看到的136代表了Python如何表示八进制,并带有一个0o
前缀。
>>> oct(136)
'0o210'