我从允许批处理请求的API中提取数据,然后将数据存储到数据帧中。当通过API查找的一个项目出现异常时,我想完全跳过该项目(或将零写入数据帧),然后继续下一个项目。你知道吗
但我的问题是,由于API数据是批量访问的(即,不是循环访问列表中的每个项),因此列表中任何项的异常都会中断程序。那么,我怎样才能优雅地处理异常,而不必遍历tickers
列表中的每一项呢?你知道吗
请注意,从tickers
列表中删除ERROR
将使程序能够成功运行:
import os
from iexfinance.stocks import Stock
import iexfinance
# Set IEX Finance API Token (Sandbox)
os.environ['IEX_API_VERSION'] = 'iexcloud-sandbox'
os.environ['IEX_TOKEN'] = 'Tpk_a4bc3e95d4c94810a3b2d4138dc81c5d'
# List of companies to get data for
tickers = ['MSFT', 'ERROR', 'AMZN']
batch = Stock(tickers, output_format='pandas')
income_ttm = 0
try:
# Get income from last 4 quarters, sum it, and store to temp Dataframe
df_income = batch.get_income_statement(period="year")
print(df_income)
except (iexfinance.utils.exceptions.IEXQueryError, iexfinance.utils.exceptions.IEXSymbolError) as e:
pass
这样就可以了
我创建了一个小函数来查找API不能处理的代码。在删除了错误的标记之后,我回忆起没有它的API,并使用
assign
函数添加带有0
值的缺少的列(它可以是任何值,一个NaN
或另一个默认值)。你知道吗相关问题 更多 >
编程相关推荐