python - 从列表中循环以替换 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 非常陌生。将非常感谢您的帮助。谢谢。
解决方案
与列表类似,您可以遍历数据框列中的元素。.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})
推荐阅读
- android - 如何使约束布局居中并添加填充
- java - 2 矩形,重叠,相交,并集。JUnit 失败:testNotOverlaps(RectangleGraderTest)
- php - PHP - 合并在 API 调用循环中创建的数组?
- c# - 为 JSON 数组中的数据提取 Json 数据
- unity3d - 如何让角色控制器使用重力?
- ios - UIPickerView 在模拟器中正常工作,但在设备上*看起来*为空
- python - 如何读取 sas 程序文件 (.sas)?
- python - Print name of array in for loop
- php - PHP如何在同名中发送多个值
- java - JUnit / Mockito:在新线程中抛出异常