异常处理下载库存数据

时间:2019-07-24 06:02:26

标签: python finance

我想下载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

我期望异常处理无法捕获无法使用的股指。

1 个答案:

答案 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")
相关问题