Я хочу получить файл excel из созданного фрейма данных, который автоматически изменяется, как написано в коде - PullRequest
0 голосов
/ 11 июля 2020

Я пробовал два метода, и оба показывали другое местоположение, указанное мной на этом изображении

 apikey='abcd'
 import pandas as pd 
 from alpha_vantage.timeseries import TimeSeries
 import time
 ts=TimeSeries(key=apikey,output_format='pandas')
 


data,metadata=ts.get_intraday(symbol='name',interval='1min',outputsize='full')
 data

 while True:
     data, metadata=ts.get_intraday(symbol='TCS',interval='1min',outputsize='full')
     data.to_excel('livedat.xlsx')
     time.sleep(60)

Код работает правильно, но я не знаю, как получить файл данных в Excel. imp - метод должен получить файл, который обновляется своевременно, т.е. 1мин автоматически. Также я использую IBM watson studio для написания кода.

1 Ответ

0 голосов
/ 14 июля 2020

Я не знаком с оболочкой alpha_vantage, которую вы используете, однако вот как я отвечу на ваш вопрос. Код работает, и я добавил комментарии.

Чтобы получить файл в сценарии python, я бы сделал pd.read_excel (filepath).

import requests
import pandas as pd
import time
import datetime

# Your API KEY and the URL we will request from
API_KEY = "YOUR API KEY"
url = "https://www.alphavantage.co/query?"


def Generate_file(symbol="IBM", interval="1min"):
    # URL parameters
    parameters = {"function": "TIME_SERIES_INTRADAY",
                  "symbol": symbol,
                  "interval": interval,
                  "apikey": API_KEY,
                  "outputsize": "compact"}

    # get the json response from AlphaVantage
    response = requests.get(url, params=parameters)
    data = response.json()

    # filter the response to only get the time series data we want
    time_series_interval = f"Time Series ({interval})"
    prices = data[time_series_interval]

    # convert the filtered reponse to a Pandas DataFrame
    df = pd.DataFrame.from_dict(prices, orient="index").reset_index()
    df = df.rename(columns={"index": time_series_interval})

    # create a timestampe for our excel file. So that the file does not get overriden with new data each time.
    current_time = datetime.datetime.now()
    file_timestamp = current_time.strftime("%Y%m%d_%H.%M")
    filename = f"livedat_{file_timestamp}.xlsx"
    df.to_excel(filename)

# sent a limit on the number of calls we make to prevent infinite loop

call_limit = 3
number_of_calls = 0
while(number_of_calls < call_limit):
    Generate_file()  # our function
    number_of_calls += 1
    time.sleep(60)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...