Вытяните шток данные с Альфы зрения API-интерфейс


Я новичок в Python и вот моя первая попытка чего-то добиться сам!

По сути, я создаю JSON-объектов с любым пользовательские тикер через Альфа-позиции по API. Это в основном небольшая часть обертка питона для API (я думаю). На самом деле, кто-то уже сделал оболочку для API, но я хочу сделать одну для себя. В любом случае, я чувствую, что это немного более сумбурно, чем он должен быть, и я не знаю как добраться до точки, где кто-то может типа как-то так object.lastday и вам в последний день торгов данными с объектом, они просто сделали.

Примечание: не реальные API-ключа

Любой совет приветствуется, я пытаюсь сделать лучше.

import json
import urllib.request
import datetime

#mainURL that will be appended to return our requests
mainURL = "https://www.alphavantage.co/query?"
#API key that will be needed to authenticate
myKey = "F3DH8T01FS5445IB"

#For daily activity
'''
REQUEST NEEDS:
function: will ALWAYS be equal to 'TIME_SERIES_DAILY' for daily
symbol: user defined stock ticker
outputsize: default is 'compact' which only returns 100 data points, 
otherwise
we can define it as 'full' to get up to 20 years worth
datatype: default is 'json', but we can also request 'csv'
'''

#loads a json object of based on what you input in dailyData(SYMBOL)
requestTypeURL = "function=TIME_SERIES_DAILY"
def dailyData(symbol, requestType=requestTypeURL, apiKey=myKey):
    symbolURL = "symbol=" + str(symbol)
    apiURL = "apikey=" + myKey
    completeURL = mainURL + requestType + '&' + symbolURL + '&' + apiURL
    with urllib.request.urlopen(completeURL) as req:
        data = json.load(req)
        return data

#making a json object for Apple and example of getting a date's activity 
(test)
'''
apple = dailyData('AAPL')
print(apple["Time Series (Daily)"]["2018-03-02"])
'''


3466
7
задан 3 марта 2018 в 09:03 Источник Поделиться
Комментарии
1 ответ

Я брошу вам обновленную версию кода, это в основном изменения мелких вещей


  • Переименовал переменные следовать snake_case конвенции

  • Сделать использование Python 3 f"" функция для создания строк

  • Реструктурирован код для создания URL-адрес

  • Добавлена основная функция запустить скрипт напрямую

    def get_daily_data(symbol, request_type, api_key):

    url = f"{main_url}{request_type}&symbol={symbol}&apikey={api_key}"

    with urllib.request.urlopen(url) as req:
    return json.load(req)

    Основная часть будет выглядеть так

    if __name__ == "__main__":
    # Test: making a json object for Apple and example of getting a date's activity
    request_type_url = "function=TIME_SERIES_DAILY"

    apple = get_daily_data('AAPL', request_type=request_type_url, api_key=my_key)
    print(apple["Time Series (Daily)"]["2018-03-02"])


5
ответ дан 5 марта 2018 в 11:03 Источник Поделиться