2015-12-22 333 views
0

我的问题是我加载的json对象的长度是错误的。它不能是1,数据有更多的对象。json的Python长度不正确

我该如何解决这个问题?

这是代码:

import urllib 
import json 

applesource = urllib.urlopen("http://www.bloomberg.com/markets/api/bulk-time-series/price/AAPL%3AUS?timeFrame=1_YEAR") 

appledata = json.load(applesource) 

print appledata 
print len(appledata) 

回答

0

Pretty-print对象:

from pprint import pprint 
pprint(appledata) 

,你会很快看到,有是appledata列表内的单个词典:

[{u'dateTimeRanges': {}, 
    u'id': u'AAPL:US', 
    u'lastPrice': 107.33, 
    u'lastUpdateDate': u'2015-12-21', 
    u'nyTradeEndTime': u'16:30:00.000', 
    u'nyTradeStartTime': u'09:30:00.000', 
    u'price': [{u'date': u'2014-12-22', u'value': 112.94}, 
      {u'date': u'2014-12-23', u'value': 112.54}, 
      {u'date': u'2014-12-24', u'value': 112.01}, 
      {u'date': u'2014-12-26', u'value': 113.99}, 
      {u'date': u'2014-12-29', u'value': 113.91}, 
      {u'date': u'2014-12-30', u'value': 112.52}, 
      {u'date': u'2014-12-31', u'value': 110.38}, 
      {u'date': u'2015-01-02', u'value': 109.33}, 
      {u'date': u'2015-01-05', u'value': 106.25}, 
      {u'date': u'2015-01-06', u'value': 106.26}, 
      {u'date': u'2015-01-07', u'value': 107.75}, 
      {u'date': u'2015-01-08', u'value': 111.89}, 
      {u'date': u'2015-01-09', u'value': 112.01}, 
      {u'date': u'2015-01-12', u'value': 109.25}, 
      {u'date': u'2015-01-13', u'value': 110.22}, 
      {u'date': u'2015-01-14', u'value': 109.8}, 
      {u'date': u'2015-01-15', u'value': 106.82}, 
      ... 
      {u'date': u'2015-12-21', u'value': 107.33}], 
    u'priceMinDecimals': 2, 
    u'timeZoneOffset': -5}] 

你可能已经打算检查价格:

prices = appledata[0]["price"] 
print(len(prices)) # prints 252 
+0

Thx现在我明白了,我没有意识到字典,我对py很陌生马拉松。我怎样才能提取整年的价格和日期? –

+0

@PedramShahlaifar迭代价格:'对于价格的价格:...' - 现在在每次迭代中,得到'price [“date”]'和'price [“value”]''。 – alecxe

0

appledata是一个元素的列表。该字典是appledata[0]