2017-04-01 4 views
1

다음 코드를 사용하여 nasdaq에서 다운로드 한 목록 심볼에서 yahoo finance의 데이터를 읽습니다.Python에서 RemoteDataError를 catch하지 못한다.

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

을 실행 아래 오류를 참조하거나 제기의이 장소에 중단됩니다. 따라서 raise 예외가 잡히지 않고 처리되면 인터럽트가 발생합니다.

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

당신은 오류에 대한 자세한 내용은 this documentation을 참조 할 수 있습니다 : 당신이 필요로하는 무엇

이 같은 것입니다.

+0

고마워요! 여전히 오류가 발생합니다. 예외 이름없이 Exceet을 읽으면 예외가 모두 잡힐 것입니다. – user4224870

+0

예, 모든 예외를 모두 표시하지 않는 것이 좋습니다. 먼저'try-catch' 블록을 제거하고 올바른 이름을 제외하고 필요한 이름 만 넣으십시오. –

+0

예외가 처리 된 경우에도 왜 멈추는 지 알기 원하십니까? 이것은 런타임 오류 때문입니까? – user4224870