Python 3.x Python 3.4:try和except之后继续函数 问题:

Python 3.x Python 3.4:try和except之后继续函数 问题:,python-3.x,exception-handling,Python 3.x,Exception Handling,我目前正在从雅虎财经获取数据。当使用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 =

我目前正在从雅虎财经获取数据。当使用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('&nbsp;&nbsp')[0]

            if len(gw) < 14:
                gw = gw
            else:
                gw = '-'

            return gw

        print(eachStock, bsYhooStats(bsUrl))

except IndexError:
    pass
index=sp500
def yhooKeyStats():
尝试:
对于每个库存索引:
isUrl='1〕http://finance.yahoo.com/q/is?s=“+eachStock+”+收益+报表和年度”
bsUrl=http://finance.yahoo.com/q/bs?s=“+每个股票+”+资产负债表+年度”
cfUrl='1http://finance.yahoo.com/q/cf?s=“+eachStock+”+现金+流量和年度”
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')[1]。split('nbsp')[0]
如果len(gw)<14:
gw=gw
其他:
gw='-'
返回gw
打印(每个目录,bsYhooStats(bsUrl))
除索引器外:
通过
yhooKeyStats()

输出 7050000毫米 ABT 10067000 ABBV 5862000 ACN 2395894 王牌- 法案24521500 ADT 3738000 AES 1458000 AET 10613200
AFL-

只需将
try/except
放入循环中即可。以下几种可能性之一:

for eachStock in index:
    ...
    try:
        def bsYhooStats(url):
            ...
            return gw if len(gw) < 14 else '-'
        print(eachStock, bsYhooStats(bsUrl))
    except IndexError:
        pass
对于索引中的每个存货:
...
尝试:
def bsYhooStats(url):
...
如果长度(gw)<14,则返回gw
打印(每个目录,bsYhooStats(bsUrl))
除索引器外:
通过

您可以将try/except放入循环中。这太简单了。。。非常感谢。