有时我必须在配置文件中指定时间(以秒为单位),而且写精确的秒数很烦人 - 相反我想执行算术以便我可以使用:
some_time: 1 * 24 * 60 * 60
而不是确切的:
some_time: 86400
不幸的是,在使用这一行时: some_time: 1 * 24 * 60 * 60
,它会将配置行视为一个字符串。当然,我可以使用 - eval(config['some_time'])
但我想知道是否可以在 YAML 中执行算术运算?
原文由 Lucas 发布,翻译遵循 CC BY-SA 4.0 许可协议
我不认为有。至少不符合规范( http://yaml.org/spec/1.2/spec.html )。人们向 yaml 添加非官方标签(维基百科似乎说有关于 yield 标签的提议,尽管他们没有说明谁提议或在哪里提议: http ://en.wikipedia.org/wiki/YAML#cite_note-16) ,但是在 pyyaml 中似乎没有你需要的东西。
查看 pyyaml 特定标签似乎没有任何有趣的东西。虽然
!!timestamp '2014-08-26'
在您的某些场景中可能很方便 ( http://pyyaml.org/wiki/PythonTagScheme )。