2017-07-25 73 views
-1

嗨,我嘗試請求一些JSON,一切正常,但有時請求出錯,可能是網站堆棧或關閉連接,因爲我每15分鐘請求JSON。Python請求堆棧

代碼在這裏:

def request_coins(config): 
    coins = None 
    print(str(datetime.now()) + ' - REQUESTING Coins') 
    while coins is None: 
     try: 
      coins = (requests.get(url=str(config['UrlPath']['url']) + str(config['UrlPath']['userrates']))) 
     except: 
      print(str(datetime.now()) + " - Site didn't respond. Reconnecting in 10 sec") 
     time.sleep(10) 
    if coins is not None: 
     coins = coins.json()['coins'] 
     print(str(datetime.now()) + ' - Coins received correctly') 
return coins 

問題是嘗試 - 捕捉不要在我的情況下工作。在print(str(datetime.now()) + ' - REQUESTING Coins')請求堆棧,我不想收到任何異常和消息到CMD

print(str(datetime.now()) + " - Site didn't respond. Reconnecting in 10 sec")

我的理解代碼堆棧在try: coins = (requests.get(url=str(config['UrlPath']['url']) + str(config['UrlPath']['userrates'])))

,不連去except

任何想法如何解決?

+0

是您的代碼結構正確嗎?如果硬幣不是無:'?因爲python代碼基於你的選項卡。 – Marprin

+0

是的,對不起miss選項卡在這裏寫在原始代碼中一切正常 – Hellbea

+0

我猜你的'requests.get'只是忙,沒有提出錯誤...所以你應該看看'請求'結合'嘗試 - 除了' 。你見過[this](https://stackoverflow.com/questions/16511337/correct-way-to-try-except-using-python-requests-module)?也許接受答案的第二部分與'Response.raise_for_status'可能有幫助? – nostradamus

回答

0

只需要添加timeout即可獲得請求

+0

您可以添加更多的細節,使您的答案更有用。 –