我有一个python脚本解析传入的有效负载,设置一个名为“confidence”和“id”的变量,然后它将评估id是否等于sam @sam并且置信度大于或等于70。 现在id等于sam @ sam,但信心不是,它仍会触发!我的代码怎么了!!?
p = eg.event.payload[2]
p = p.split(',')
id = p[0].strip()
confidence = p[1].strip()
print confidence
url = p[2].strip()
if confidence >= 70 and id == "sam@sam":
eg.TriggerEvent("FaceRec", "Unlock Door" )
else:
eg.plugins.GoogleVoice.SendSMS(u'407#####', url)
答案 0 :(得分:12)
问题在于“置信度”是一个字符串,您将其与数字进行比较。将字符串与数字进行比较的结果是一致的,但不一定是您想要的结果。
修正:
confidence = int(p[1].strip())
答案 1 :(得分:4)
好的,让我们仔细看看你的代码。现在,p是一个字符串。所以当你拆分它时,结果(id和置信度)就是字符串。那是你的问题。因为在比较值时置信度仍然是一个字符串,所以您要比较字符串和int。这样做:
confidence = int(p[1].strip())
首先将字符串转换为int,因此,置信度将为int。然后比较将正常工作。