有时我必须在配置文件中指定时间(以秒为单位),并且写精确的秒数非常烦人-相反,我想执行算术运算,所以可以使用:

some_time: 1 * 24 * 60 * 60

而不是确切的:
some_time: 86400

不幸的是,在使用此行:some_time: 1 * 24 * 60 * 60时,它将把该配置行视为字符串。当然,我可以使用-eval(config['some_time']),但我想知道是否可以在YAML中执行算术运算?

最佳答案

我认为没有。至少不符合规范(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)。

关于python - 在YAML中执行算术运算?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25516945/

10-11 01:04