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。
该代码(以及该程序的其余部分)似乎可以正常运行数小时,但是在遍历该部分数千次之后,最终将挂在该部分代码中。

它挂起了不确定的时间长度。我什至回到它发现它已经挂了几个小时了。

谷歌搜索所有我想出的问题是关于一个类似问题的报告,其中执行挂在.read()上,据报道该问题已在几年前修复。

那么是什么原因导致执行挂起,如何解决或解决该问题呢?

最佳答案

使用mechanize.Browser().open()而不是urlopen会显示一个“ urllib2.URLError urlopen connection time out”,当单独使用urlopen时不会出现该“ mechanize.Browser().open()”。我强烈怀疑这是问题所在,我的解决方案是在所有情况下都使用urlopen代替

10-08 04:38