2
try:
html = urlopen('http://glbse.com/api/asset/' + asset.name)
except:
print 'error while updating the price of ' + asset.name
continue
json_txt = html.read()
ticker = json.loads(json_txt)
average_price = int(ticker['t24havg'])
if average_price == 0:
average_price = int(ticker['t5davg'])
if average_price == 0:
average_price = int(ticker['t7davg'])
if average_price == 0:
average_price = int(ticker['latest_trade'])
if average_price == 0:
print 'could not determine the price of ' + asset.name
continue
asset.average_price = average_price
我使用機械化的的urlopen。 此代碼(以及程序的其餘部分)似乎可以在幾小時內正常運行,但在循環遍歷此部分數千次之後,最終會在代碼的某個部分掛起。爲什麼這段python代碼在執行期間會掛起?
它掛爲不確定的時間長度。我甚至回過頭來發現它已經掛在那裏好幾個小時了。
谷歌搜索的問題都是我拿出有類似的問題,在執行上.read(),它被固定年前報道掛起的報告。
那麼是什麼原因造成的執行掛起,我該如何解決或解決方法呢?
我見過'json.loads'掛起時未提供有效的json文件。你確定你總是傳遞一個正確的json文件嗎? – Darthfett
除了'except:';它會捕獲任何異常。只捕捉你需要捕捉的東西。添加一些記錄;這應該可以幫助你發現問題所在。 – MRAB
你可以嘗試將可選的超時參數傳遞給urllib2.urlopen,看看是否有幫助。 –