首页 > 解决方案 > 从列表中循环以替换 API 的代码

问题描述

我正在尝试使用来自网络的 API 提取数据。我想要做的是调用某些公司的当前/历史股票价格并将信息存储在数据框或 sqlite 数据库中。我有一个代码,我可以在其中调用一家公司的信息。但是如何创建一个循环,在其中可以替换每个公司的股票代码(代表每个公司名称的代码列表——我有一个单独的数据框)并存储其价格。目的是将所有公司(约 500 家)的价格存储在其股票代码下的一个数据框中。这是我必须拉动一只股票价格的代码。

data=requests.get('https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=NSE:HDFCBANK&outputsize=full&apikey={}'.format(api_key))

我需要将 NSE:HDFCBANK 替换为另一个数据框中的其他代码列表,该列表具有这样的列表

df1 = {'Ticker': ['HDFCBANK', 'SBIN', 'ADANIGAS', 'BAJAJAUTO'],
'Name': ['Hdfc Bank', 'State Bank of India', 'Adani Gas', 'Bajaj Auto']}

df1 = pd.DataFrame(df1, columns = ['Ticker', 'Name']) 
df1

对 Python 非常陌生。将非常感谢您的帮助。谢谢。

标签: pythonapiloopsstockquotes

解决方案


与列表类似,您可以遍历数据框列中的元素。.format()您可以使用就像您已经完成的那样替换股票代码api_key(值被放置在字符串中的相应{}存在中)。

prices = []
for ticker in df1.Ticker:
    data=requests.get('https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=NSE:{}&outputsize=full&apikey={}'.format(ticker, api_key))
    prices.append(data.json()['Time Series (Daily)']['2020-04-30']['1. open'])
df = pd.DataFrame({'symbol':df1.Ticker, 'price':prices})

推荐阅读