2017-07-25 70 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

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