2016-03-27 8 views
1

В настоящее время я использую Pandas для получения данных о параметрах от yahoo. Он отлично работает до тех пор, пока не появится запас, у которого нет параметров, после чего программа выйдет из строя. Я попытался создать исключения и просто пропустить, но не повезло. Как я могу определить, что программа идентифицирует акции без каких-либо опций и просто пропустить? Благодарю.Python - Как избежать ошибок (исключений) в Pandas, все еще получая данные?

Ошибка я получаю это: RemoteDataError: Нет данных

Вот код (я использовал запас без опций, чтобы проверить -> 'GHC'):

from pandas_datareader.data import Options 
import pandas as pd 
from pandas import DataFrame 
import datetime 
import csv 
import time 
import sys 

tickers = ['GHC'] 

for i in tickers: 
option = Options(i,'yahoo') 
data = option.get_all_data() 

try: 
    print data.head 

except AttributeError: 
    pass 

except RemoteDataError: 
    pass 

ответ

2

Вы можете обрабатывать RemoteDataError исключение импортируемого из pandas_datareader._utils:

from pandas_datareader._utils import RemoteDataError 
from pandas_datareader.data import Options 

tickers = ['GHC'] 

for i in tickers: 
    try: 
     option = Options(i, 'yahoo') 
     data = option.get_all_data() 
    except RemoteDataError: 
     print("No information for ticker '%s'" % i) 
     continue 
+0

Все еще не работает ... – RageAgainstheMachine

+0

@RageAgainstheMachine это код, который я выполняю, и он работает для меня. Что происходит с вашей стороны? – alecxe

+0

поэтому, когда я запускаю ваш код, он работает !!!!! Возможно ли, что наличие всех этих дополнительных библиотек наверху испортило это, потому что, когда я запускал его, я впервые внес изменения в свой код, чтобы отразить ваши изменения ... – RageAgainstheMachine

1
for i in tickers: 
    try: 
     option = Options(i,'yahoo') 
     data = option.get_all_data() 
    except RemoteDataError: # Add here correct expectation type... 
     continue # What to do with 'i' and 'data', nulls? 
+0

все еще не работает .... – RageAgainstheMachine

+0

@RageAgainstheMachine вставьте свое сообщение об ошибке из приглашения. –