【问题标题】:loop from a list to replace in a code for API从列表中循环以替换 API 的代码
【发布时间】:2020-05-04 17:03:26
【问题描述】:

我正在尝试使用 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 非常陌生。将非常感谢您的帮助。谢谢。

【问题讨论】:

    标签: python api loops stockquotes


    【解决方案1】:

    与列表类似,您可以遍历数据框列中的元素。您可以使用 .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})
    

    【讨论】:

    • 感谢@SomebodyOnceToldMe 的回复。该代码正在运行,但如果这听起来很幼稚,但它只提取一家公司的股票价格,我们深表歉意。我的目标是提取代码列表中所有公司的价格并将其存储在数据框中。如何做到这一点?
    • @user13458293 代码更新!我也不认为 N​​SE:BAJAJAUTO 存在于他们的数据库中。
    • 嘿@SomebodyOnceToldMe 感谢您的回答。 '2020-04-30' 抛出错误。我将你的附加到我的后面(以获取更多信息并添加当前日期,但现在抛出错误为“ValueError:时间数据'元数据'与格式'%Y-%m-%d'不匹配”
    • prices = [] 用于 df1.SYMBOL 中的代码: data=requests.get('alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=NSE:{}&outputsize=full&apikey={}'.format(ticker, api_key)) data=data .json() for d,p in data.items(): date=datetime.datetime.strptime(d,'%Y-%m-%d') prices.append(data.json()['时间序列 ( Daily)'][date,float(p['1.open']),float(p['2.high']),float(p['3.low']),float(p['4. close']),int(p['5.volume'])]) df = pd.DataFrame({'symbol':df1.SYMBOL, 'price':prices})
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-02
    • 2017-09-13
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多