我在.ini文件中有一个if语句:

critical= $TREND$>=40


在我的脚本中,将$ TREND $替换为我的值,所以我有一个变量:

critical = "10.5>=40"


我尝试执行此if语句,以了解它是True还是False。

if critical:
   print "It's critical!"


(我知道它将只检查critical是否为空)

最佳答案

一种选择是使用eval

critical = eval("10.5>=40")


但是,您必须确保“评估”的内容是完全可信的,因为它允许您执行任何任意的python代码。也就是说,如果字符串的任何部分由“不受信任的实体”(用户,外部api等)传入,则不要使用此选项。

另一个可能更好的选择可能是使用允许“不受信任”或“沙盒”执行的“模板解析器”。例如,Jinja Sandbox mode

09-26 11:12