我想使用字典

时间:2015-09-01 18:23:21

标签: python python-2.7

我通过网络以字符串格式获得以下条件:

"value1+value2>value3"

我从某些寄存器中获取value1,value2和value3

value1 = readRegister(100), 
value2 = readRegister(200), 
value3 = readRegister(300) 

所以我通过读取寄存器值

创建了下面的dictonary
test_dict = { value1:120, value2: 200, value3: 500}

如果在开始时提到的条件为真,那么我必须执行某些操作。

正如我在启动条件时提到的那样是 string 格式,所以我需要从我创建的字典(即test_dict)中获取并获取条件中提到的字符串的值,然后需要执行条件中提到的arithematic操作。

我不确定如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

您可以使用eval

首先,确保输入字符串绝对值得信赖。如果恶意用户可以指定其内容,他们可以擦除您的硬盘并向您的母亲发送不礼貌的电子邮件。有关详细信息,请参阅Peter Wood的评论中的链接。

然后,调用eval,将d作为全局字典传递。

>>> d = {"value1": 120, "value2": 200, "value3": 500}
>>> s = "value1+value2>value3"
>>> eval(s, d)
False
>>> d = {"value1": 120, "value2": 200, "value3": 300}
>>> eval(s, d)
True

这假设你的字典有字符串文字作为键。你的问题并不清楚;我假设你忘了写引号。