2015-12-22 330 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]