2017-07-01 80 views
-3

我試圖處理來自抽搐API的一些數據來檢查線路是否是活的或不是從JSON名單像這樣的字符串:檢查的變量在python

import requests 
import json 

r = requests.get("http://some-api/api", params) 

rdata = r.json() 

rstatus = rdata["live"] 

rstatus返回我「無「用於脫機的字符串,否則它不會返回。所以我想要的是檢查rstatus是「None」還是與「None」字符串不同。我想這個代碼,但沒有工作:

if "None" in rstatus: 
    print("Live") 
else: 
    print("Offline") 
+1

'如果rstatus是None:...' –

回答

2

當你看到印有「無」,這是告訴你RSTATUS不存在的Python的方式。它就像其他語言中的「null」一樣。這不是一個字符串,它幾乎沒有。你可以這樣做:

if rstatus is None: 
    foo 
else: 
    bar 

「沒有」是這樣做的首選方式。它比rstatus == none更快,更可接受。

希望這會有所幫助!

+0

明白了,謝謝! –

-2

很簡單:

>>> status = None 
>>> if status: 
... print "it live, status is not None" 
... else: 
... print "too sad..." 
... 
too sad... 
>>> 

但是Python中的禪說, 「明確優於隱式」。如果測試狀態爲無:

>>> if not status == None: 
... print "it live, status is not None" 
... else: 
... print "too sad..." 
... 
too sad... 
>>> 
+1

'如果狀態不是None' – eandersson

+0

哇 - 不同的表達和即時downvotes。 – Mandraenke

+0

「蟒蛇之禪」中列出的第一條規則是「美麗勝於醜陋」。:) – eandersson