Альфа Vantage - Изолировать Цена акций - PullRequest
0 голосов
/ 18 ноября 2018

Используя Python, я могу получить доступ к большинству API Alpha Vantage и получить результаты в виде кортежа или команды. То, что я хочу, это просто цена акций в определенный момент времени. Например, с помощью «глобальной цитаты» я получаю все данные, но не могу разобрать или разделить кортеж / dict на отдельные элементы.

Кто-нибудь делал это? Буду признателен за код.

API возвращает следующие данные; это тип dict с len 1. Что мне нужно, так это цена (108.29) в нормальной переменной с плавающей запятой.

 (' data ', {u'Global Quote': {u'05. price': u'108.2900', u'08. previous close': u'107.2800', u'10. change percent': u'0.9415%', u'03. high': u'108.8800', u'07. latest trading day': u'2018-11-16', '}})

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Спасибо - я не рассматривал это как возможность, то есть диктат в кортеже. Я новичок как в Linux, так и в Python, так что, думаю, это какая-то любительская ошибка. Тем не менее, я действительно ценю время, потраченное на ответ. Я надеюсь вернуть это в ближайшем будущем.

Кстати, я замечаю, что с Python, если я что-то неправильно пишу, иногда я не получаю ошибку - точно. Например, если я выполняю инструкцию print для отладки и неправильно ссылаюсь на вышеуказанный элемент, команда print не выполняется, но я не получаю код ошибки. Фактически, код, следующий за оскорбительным оператором печати, также может не выполняться; Я мог бы просто пойти в EOJ. Имеет ли это смысл? NB - я еще не скомпилировал; все еще работает в режиме интерпретации.

0 голосов
/ 20 ноября 2018

Представленные вами данные, похоже, имеют небольшую проблему в конце (есть запятая и открытая кавычка). Предполагая, что фактические данные не имеют этой проблемы, вы можете извлечь цену в переменную с плавающей запятой следующим образом:

data = (' data ', {u'Global Quote': {u'05. price': u'108.2900', u'08. previous close': u'107.2800', u'10. change percent': u'0.9415%', u'03. high': u'108.8800', u'07. latest trading day': u'2018-11-16'}})
price = float(data[1]['Global Quote']['05. price'])
print(price)

Это будет отображать цену как:

108.29

Похоже, что API извлекает кортеж, состоящий из слова data, а затем словарь, содержащий все значения. Поэтому сначала используйте [1] для доступа к словарю. Сама запись Global Quote является словарем.

...