You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何PyYAML中两个时间格式表达式解析结果不同?

PyYAML解析时间格式出现差异的原因

先看对应的代码示例:

import yaml
from io import StringIO

yaml.full_load(StringIO('a: 16:00:00'))
# {'a': 57600}
yaml.full_load(StringIO('a: 09:31:00'))
# {'a': '09:31:00'}

出现这种差异的核心原因是PyYAML的自动类型解析规则:

  • 对于16:00:00,PyYAML将其识别为六十进制时间格式,自动转换为总秒数:16×3600 + 0×60 + 0 = 57600,最终解析为整数类型。
  • 对于09:31:00,开头的09不符合YAML的数字解析规则:YAML里以0开头的数字会被视为八进制,但八进制只允许0-7的数字,09属于非法八进制数,因此PyYAML不会触发六十进制解析逻辑,直接将整个内容当作字符串处理。

内容的提问来源于stack exchange,提问作者extremeaxe5

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 18:31:42