09:00
在YAML中的含义是什么?它有官方定义吗?
我看不到anything about this syntax in the tags section of the spec。鉴于以下YAML:
- 09:00
- 10:00
PyYAML只将第一个解释为字符串
>>> import yaml
>>> yaml.load("- 09:00\n- 10:00")
['09:00', 600]
而YAMLlint将两者转换为看起来像秒的东西:
---
- 32400
- 36000
它应该是什么?这个定义得好吗?
答案 0 :(得分:1)
您指的是规范的1.2版本,但PyYAML仅符合1.1版本。在1.1规范中,引用了sexagesimals,其代码就是将09:00
识别为整数。
我的回答here on SO给出了一个示例,说明如何调整我的ruamel.yaml(派生自PyYAML),不将性感动物识别为整数,而是将其识别为字符串。你也应该能够将这个技巧应用到PyYAML本身。
从ruamel.yaml 0.11开始,其RoundTripLoader默认不支持未明确标记为%YAML 1.1
的文档中的sexagesimals。