Python 3.4:尝试和排除后继续运行
Python 3.4 : continue function after try and except
问题
我目前正在从雅虎财经中提取数据。使用 try 和 except 时,函数会在达到错误后停止。如何在 except 语句之后继续函数以提取索引中股票的剩余数据?
index = sp500
def yhooKeyStats():
try:
for eachStock in index:
isUrl = 'http://finance.yahoo.com/q/is?s='+eachStock+'+Income+Statement&annual'
bsUrl = 'http://finance.yahoo.com/q/bs?s='+eachStock+'+Balance+Sheet&annual'
cfUrl = 'http://finance.yahoo.com/q/cf?s='+eachStock+'+Cash+Flow&annual'
def bsYhooStats(url):
req = urllib.request.Request(url)
resp = urllib.request.urlopen(req)
respData = resp.read()
dRespData = respData.decode('utf-8')
gw = dRespData.split('Goodwill</td><td align="right">')[1].split('  ')[0]
if len(gw) < 14:
gw = gw
else:
gw = '-'
return gw
print(eachStock, bsYhooStats(bsUrl))
except IndexError:
pass
yhooKeyStats()
输出
嗯 7,050,000
ABT 10,067,000
ABBV 5,862,000
乙腈 2,395,894
王牌 -
首都领地 24,521,500
日均税 3,738,000
1,458,000 埃塞俄比亚
澳大利亚先令 10,613,200
澳式橄榄球联盟-
只需将 try/except
放在 循环中。几种可能性之一:
for eachStock in index:
...
try:
def bsYhooStats(url):
...
return gw if len(gw) < 14 else '-'
print(eachStock, bsYhooStats(bsUrl))
except IndexError:
pass
问题
我目前正在从雅虎财经中提取数据。使用 try 和 except 时,函数会在达到错误后停止。如何在 except 语句之后继续函数以提取索引中股票的剩余数据?
index = sp500
def yhooKeyStats():
try:
for eachStock in index:
isUrl = 'http://finance.yahoo.com/q/is?s='+eachStock+'+Income+Statement&annual'
bsUrl = 'http://finance.yahoo.com/q/bs?s='+eachStock+'+Balance+Sheet&annual'
cfUrl = 'http://finance.yahoo.com/q/cf?s='+eachStock+'+Cash+Flow&annual'
def bsYhooStats(url):
req = urllib.request.Request(url)
resp = urllib.request.urlopen(req)
respData = resp.read()
dRespData = respData.decode('utf-8')
gw = dRespData.split('Goodwill</td><td align="right">')[1].split('  ')[0]
if len(gw) < 14:
gw = gw
else:
gw = '-'
return gw
print(eachStock, bsYhooStats(bsUrl))
except IndexError:
pass
yhooKeyStats()
输出
嗯 7,050,000 ABT 10,067,000 ABBV 5,862,000 乙腈 2,395,894 王牌 - 首都领地 24,521,500 日均税 3,738,000 1,458,000 埃塞俄比亚 澳大利亚先令 10,613,200 澳式橄榄球联盟-
只需将 try/except
放在 循环中。几种可能性之一:
for eachStock in index:
...
try:
def bsYhooStats(url):
...
return gw if len(gw) < 14 else '-'
print(eachStock, bsYhooStats(bsUrl))
except IndexError:
pass