json的Python长度不正确

时间:2015-12-22 00:02:40

标签: json python-2.7 urllib

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

我该如何解决这个问题?

这是代码:

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)

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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