2017-12-18 447 views
0

我想檢查一個簡單的標誌是真或假,但我的IF語句失敗,它不會給我正確的結果,希望有人可以幫助!python如果語句失敗

我使用(在python3.6)這個網址

https://bittrex.com/api/v1.1/public/getticker?market=usdt-btc 

的GET請求,它應該(在瀏覽器URL)返回看起來像這樣的數據:

{"success":true,"message":"","result":{"Bid":18362.00000000,"Ask":18399.00000000,"Last":18362.00000000}} 

下面是我的程序:

import sys 
    import time 
    import requests 
    import json 
    import os 

    BTCtick = 'https://bittrex.com/api/v1.1/public/getticker?market=usdt-btc' 
    reqBTC = requests.get('https://bittrex.com/api/v1.1/public/getticker?  market=usdt-btc').text 
    BTCdata = json.loads(reqBTC) 

    testResult = BTCdata['success'] 
    print("=============================") 
    print("success content: ", BTCdata['success']) 
    if (testResult == 'True'): 
     print("IF: success flag is TRUE") 
    else: 
     print("IF: success flag is FALSE") 
    print("=============================") 

    print("result content: ", BTCdata['result']) 
    print("Bid: ", BTCdata['result'] ['Bid'], sep='') 
    print("Ask: ", BTCdata['result'] ['Ask'], sep='') 
    print("Last: ", BTCdata['result'] ['Last'], sep='') 
    print("=============================") 
    exit() 

輸出在控制檯看起來是這樣的:

============================= 
    success content: True 
    IF: success flag is FALSE 
    ============================= 
    result content: {'Bid': 18420.0, 'Ask': 18439.99999999, 'Last': 18439.99999999} 
    Bid: 18420.0 
    Ask: 18439.99999999 
    Last: 18439.99999999 
    ============================= 

任何想法我在這裏失蹤?我確信它很簡單 請幫助我,我對python有點新,並且發現有什麼不對,我在過去兩天一直在閱讀很多內容,但是找不到問題!

+0

你使用文字''True''但也許它應該是布爾值'True' – furas

+0

剛注意,謝謝@chris – elanor

+0

'True'!=''True'' =''true'' –

回答

2

json.loads()會將true轉換爲Python的布爾值Trueconversion table for the reference)。你只需要檢查的testResult價值感實性,而不是它的字符串'True'比較:

if testResult: 
    print("IF: success flag is TRUE") 
else: 
    print("IF: success flag is FALSE") 

換句話說,這裏是當你比較testResult'True'字符串發生了什麼:

In [1]: testResult = True 

In [2]: testResult == 'True' 
Out[2]: False 
+0

謝謝@alecxe,那拯救了我的一天:-D。非常感謝和非常豐富的信息,我不知道我可以這樣檢查。我想另一種方法可能是定義TRUE和FALSE,然後檢查它,但看起來它已經是python的一部分,並且是預定義的? –

+0

@ForumStudiologe是的,對,不要過度複雜並遵循文檔。謝謝。 – alecxe