Python 如果<;var>;是无:不';我好像不知道
免责声明:我对python非常陌生,不知道自己在做什么,我在网上自学 我有一些代码看起来像这样 代码:Python 如果<;var>;是无:不';我好像不知道,python,if-statement,nonetype,Python,If Statement,Nonetype,免责声明:我对python非常陌生,不知道自己在做什么,我在网上自学 我有一些代码看起来像这样 代码: from request import get # Ed: added for clarity myurl = URLBASE + args.key response = get(myurl) # check key is valid json = response.text # Ed: this is a requests.Response object print(json) if
from request import get # Ed: added for clarity
myurl = URLBASE + args.key
response = get(myurl)
# check key is valid
json = response.text # Ed: this is a requests.Response object
print(json)
if json is None:
sys.exit("Problem getting API data, check your key")
print("how did i get here")
null
how did i get here
输出:
from request import get # Ed: added for clarity
myurl = URLBASE + args.key
response = get(myurl)
# check key is valid
json = response.text # Ed: this is a requests.Response object
print(json)
if json is None:
sys.exit("Problem getting API data, check your key")
print("how did i get here")
null
how did i get here
但我不知道这怎么可能。。。它字面上说它在打印中为空,但在“if”中不匹配。任何帮助都将不胜感激
thx所以我确信我仍然不完全理解,但这“修复”了我的问题
requests.Response对象
具有属性/方法json
——因此我应该使用它,感谢wim,而不是文本
。因此,如建议的那样,将代码更改为此(如下所示),可以使代码正常工作
from request import get
myurl = URLBASE + args.key
response = get(myurl)
# check key is valid
json = response.json()
if json is None:
sys.exit("Problem getting API data, check your key")
print("how did i get here")
问题(对我来说是好奇的)仍然存在,我将如何执行if语句来确定字符串是否为null
感谢Ry和wim的帮助。您从未解析过JSON,因此它是字符串
“null”
。不确定get
是什么,但请尝试json=response.json
。字符串“null”
不是对象None
。唯一的None
是None
本身。@Ry-有正确的想法,但您需要使用response.json()
因为response.json
会让你陷入类似的陷阱。如果某个字符串==“null”
。在本例中,字符串不是null
对象(Python中不存在该对象,称为None
),而是包含内容的字符串“null”
;也就是说,字符n
,u
,l
,l
,按顺序排列。感谢@Adam Smith,花了这么多时间,这很有效(您可能知道),现在我已经在代码中对它进行了测试,能够使它工作,并且更好地理解它和python。谢谢你的帮助。一个问题字符串可以为空吗?或者,如果字符串为null,是否填充了“null”?您想要一个内容为“null”的字符串,或者如果您想要比较stings,您将如何区分“null”(字符串)和(实际上)null(或空)之间的区别Python中只有一个null对象,它是singletonNone
。内容为“null”
的字符串只是一个常规字符串。空字符串看起来像”
(“空字符串”看起来像None
,与“其他任何内容都为空”相同)。这实际上是您的问题,因为响应文本是文本“null”在Python中没有特殊意义。它被解析为JSON,JSON正确地将其识别为空对象,并适当地反序列化为None
)