2017-10-21 131 views
0

我有下面的代码在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变量等于“真”。

你知道可能是什么问题吗?

谢谢

+0

什么是isactive的字符串的长度?也许有,包括一些空白? – mpez0

+0

什么'print repr(isactive)'打印? – MaximTitarenko

+0

嗯,这很奇怪。当我尝试获得isactive的长度时,我得到下面的错误:文件“hoy.py”,行291,在 print len(isactive) TypeError:类型'bool'没有len() –

回答

0
isactive == True and isactive != 'True' 

对测试:

if isactive != True: 
    print 'hola' 
+0

它似乎正在按照您的建议工作。谢谢! –

+0

Bienvenido,Jose,porfa marca mi respuesta comosolución。 – rollinger

1

一个真正的json被转换为python True。布尔值,而不是字符串。 在你的比较,就可以简单地输入if not isActive:

相关问题