я только начинаю учиться программировать и хочу заранее извиниться, если этот вопрос тривиален.
Я пытался найти способ передавать данные фондового рынка в Python в режиме реального времени и наткнулся на этот блог http://www.quantatrisk.com/2015/05/07/hacking-google-finance-in-pre-market-trading-python/
Ниже приведен сценарий, который я скопировал и вставил.
import urllib2 # works fine with Python 2.7.9 (not 3.4.+)
import json
import time
def fetchPreMarket(symbol, exchange):
link = "http://finance.google.com/finance/info?client=ig&q="
url = link+"%s:%s" % (exchange, symbol)
u = urllib2.urlopen(url)
content = u.read()
data = json.loads(content[3:])
info = data[0]
t = str(info["elt"]) # time stamp
l = float(info["l"]) # close price (previous trading day)
p = float(info["el"]) # stock price in pre-market (after-hours)
return (t,l,p)
p0 = 0
while True:
t, l, p = fetchPreMarket("AAPL","NASDAQ")
if(p!=p0):
p0 = p
print("%s\t%.2f\t%.2f\t%+.2f\t%+.2f%%" % (t, l, p, p-l,
(p/l-1)*100.))
time.sleep(60)
это кажется отличным кодом, за исключением того, что когда я его запускаю, я получаю следующее сообщение об ошибке
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-11-012ec6dc7b0c> in <module>()
18 p0 = 0
19 while True:
---> 20 t, l, p = fetchPreMarket("AAPL","NASDAQ")
21 if(p!=p0):
22 p0 = p
<ipython-input-11-012ec6dc7b0c> in fetchPreMarket(symbol, exchange)
10 data = json.loads(content[3:])
11 info = data[0]
---> 12 t = str(info["elt"]) # time stamp
13 l = float(info["l"]) # close price (previous trading day)
14 p = float(info["el"]) # stock price in pre-market (after-hours)
KeyError: 'elt'
Я попытался изменить fetchPreMarket таким образом, чтобы он просто выводил info = data[0]
, но когда я попытался «распечатать информацию», из этого ничего не вышло.
заранее спасибо
data
. На что это похоже? - person OneCricketeer   schedule 24.02.2016t,l,p
в функции и делаюdata = fetchPreMarket("AAPL","NASDAQ") print(data) time.sleep(60)
, то я получаю[{u'c': u'+0.95', u'ccol': u'chg', u'e': u'NASDAQ', u'ltt': u'2:40PM EST', u'cp_fix': u'1.00', u'c_fix': u'0.95', u'l': u'95.64', u's': u'0', u'lt': u'Feb 24, 2:40PM EST', u'pcls_fix': u'94.69', u't': u'AAPL', u'lt_dts': u'2016-02-24T14:40:36Z', u'l_fix': u'95.64', u'cp': u'1.00', u'id': u'22144', u'l_cur': u'95.64'}]
- person stratofortress   schedule 24.02.2016