如果语句不等于条件不能按预期工作
问题描述:
我有下面的代码在Python中,我不知道为什么,但它不按预期方式工作。如果语句不等于条件不能按预期工作
变量isactive的值为“真”,并且它来自json字典。但是,如果我在下面写下声明,该程序正在打印“Hola”。请看下面的代码:
response = requests.request("GET", url, headers=headers, params=querystring)
variable = response.text
variable = json.loads(variable)
isactive = lista1[listanumber]['IsActive']
print isactive (ourput for this is giving me "True")
if isactive != "True":
print "hola"
然而,上面的if语句是打印“HOLA”我不明白为什么,因为isactive变量等于“真”。
你知道可能是什么问题吗?
谢谢
答
isactive == True and isactive != 'True'
对测试:
if isactive != True:
print 'hola'
+0
它似乎正在按照您的建议工作。谢谢! –
+0
Bienvenido,Jose,porfa marca mi respuesta comosolución。 – rollinger
答
一个真正的json被转换为python True。布尔值,而不是字符串。 在你的比较,就可以简单地输入if not isActive:
什么是isactive的字符串的长度?也许有,包括一些空白? – mpez0
什么'print repr(isactive)'打印? – MaximTitarenko
嗯,这很奇怪。当我尝试获得isactive的长度时,我得到下面的错误:文件“hoy.py”,行291,在 print len(isactive) TypeError:类型'bool'没有len() –