我想下载sp500数据的所有收盘价并放入一个数据框。我的异常处理没有捕获。
我已经尝试过标准语法异常处理
from pandas_datareader import data as pdr
import yfinance as yf
yf.pdr_override() # <== that's all it takes :-)
# NYSE
url_nyse = "http://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nyse&render=download"
# Nasdaq
url_nasdaq = "http://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nasdaq&render=download"
# AMEX
url_amex = "http://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=amex&render=download"
import pandas as pd
df = pd.DataFrame.from_csv(url_nyse)
stocks = df.index.tolist()
df_list = []
used_stocks = []
for stock in stocks:
try:
data = pdr.get_data_yahoo(stock, start="2017-01-01", end="2017-04-30")
data_close=data['Close']
df_list.append(data_close)
used_stocks.append(stock)
except ValueError :
pass
df_list
我期望异常处理无法捕获无法使用的股指。
答案 0 :(得分:0)
您至少有2个选择。
第一个是除以下所有例外情况之外的内容:
try:
# your code
except:
print "Caught it!"
第二个是添加您遇到的每个异常,以便相应地更改程序的行为。
try:
# your code
except ValueError:
print("Value Error")
except KeyError:
print("Key Error")
或者如果您不想单独处理它们,可以这样:
try:
#your code
except (KeyError, ValueError):
print("Error")