2016-04-22 10 views
1

URLからJSONデータをインポートし、Python 2.7を使用して特定のキーの値を抽出しようとしています。私が試した次Pythonを使用してJSONキーの値を取得できません

import urllib 
import json 
daily_stock = urllib.urlopen('http://www.bloomberg.com/markets/api/bulk-time-series/price/NFLX%3AUS?timeFrame=1_DAY') 
stock_json = json.load(daily_stock) 
print stock_json 

出力は次のとおりです。

[{u'lastPrice': 95.9, u'lastUpdateDate': u'2016-04-22', u'price': [{u'value': 95.45, u'dateTime': u'2016-04-22T13:30:00Z'} ... 
u'dateTimeRanges': {u'start': u'2016-04-22T13:30:00Z', u'end': u'2016-04-22T20:30:00Z'}}] 

i 'はlastPrice' の値を取得しよう:

print stock_json["lastPrice"] 

私は次のエラーを取得する:

TypeError: list indices must be integers, not str 

助けてください。

答えて

1

stock_jsonはインデックスで辞書を取得し、内部に単一の辞書とリストです:

print stock_json[0]["lastPrice"] 
+0

ありがとう!それはうまくいきます。ちょうど上記の質問への拡張:json.loadが使用されているとき、デフォルトではdictとして保存されませんか?この場合、なぜリスト内に辞書として格納されますか? – Harish

+0

@ハリッシュがお手伝いしてうれしいです。 [definition](http://www.json.org/)によると、JSONオブジェクトはオブジェクト/ディクショナリとリスト/配列の2つの構造で構築されています。この場合、 'json.load()'はJSON配列からPythonリストへロードします。 – alecxe

+0

とった。説明をいただきありがとうございます。 – Harish

関連する問題