2017-04-01 79 views
1

我正在使用以下代码从从纳斯达克下载的列表符号中读取来自雅虎财经的数据。Python尝试除了未能捕获RemoteDataError

pnls = {i:dreader.DataReader(i,'yahoo','1985-01-01','2017-03-30') for i in symbols} 

for df_name in pnls: 
    try: 
     pnls.get(df_name).to_csv("/Users/Jiong/Documents/data/{}_data.csv".format(df_name), index=True, header=True) 
    except: 
     print("error {}".format(df_name)) 
    else: 
     print("done {}".format(df_name)) 

猜猜一些符号可能不是有效的,雅虎财经抛出RemoteDataError Exception

上面的代码应该继续,但它仍停在错误。

是不是除了捕获所有异常?或者这是运行时错误?

无论如何获取代码忽略它并继续?谢谢。请参阅下面的错误运行

118   if params is not None and len(params) > 0: 
119    url = url + "?" + urlencode(params) 
--> 120   raise RemoteDataError('Unable to read URL: {0}'.format(url)) 
121 
122  def _read_lines(self, out): 

RemoteDataError: Unable to read URL: http://ichart.finance.yahoo.com/table.csv?c=1985&f=2017&s=MITT%5EA&g=d&ignore=.csv&d=2&e=30&a=0&b=1 

回答

0

您需要处理的加薪异常,也将在地方停止募集。所以,如果一个异常没有被捕获和处理,它将被中断。

你需要的是这样的:

except RemoteDataError as exp : 
    print('Unable to read URL: {0}'.format(url)) 

您可以参考this documentation关于错误的详细信息。

+0

谢谢!它仍然会引起错误。我读取excelle无异常名称将捕获所有异常。 – user4224870

+0

是的,但禁止所有例外情况不是一个好习惯。首先通过删除'try-catch'块来识别正确的名称,并且只将除了必需的名称。 –

+0

任何想法为什么它仍然停止,即使异常处理?这是由于它是一个运行时错误? – user4224870