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