2013-03-24 63 views
0

我想要做的是找到關鍵「符號」下的市場價值。在JSON中查找值

有了這個代碼,我得到的錯誤

File "C:\Python27\bitcoinAPI", line 9, in getmarket 
    for key, value in data.items(): 
AttributeError: 'list' object has no attribute 'items' 

下面是代碼:

def getmarket(): 
    page = urllib2.urlopen("http://bitcoincharts.com/t/markets.json") 
    data = json.load(page) 
    for key, value in data.items(): 
     if ["symbol"] == "mtgoxUSD": 
      print ["symbol"] 
getmarket() 

我也試過這個

for key, value in data.itervalues(): 
for key, value in data.iteritems(): 

他們都說列表沒有屬性iterwhatever

回答

1

在解碼你指定的json之後,json.load方法返回一個不是字典的列表。該錯誤消息涉及的事實是名單data沒有items方法。

此外,此表達式:["symbol"] == "mtgoxUSD"將始終返回false,因爲您要將列表與單個元素("symbol")與字符串"mtgoxUSD"進行比較。

此代碼可能會幫助你:

def getmarket(): 
    page = urllib2.urlopen("http://bitcoincharts.com/t/markets.json") 
    data = json.load(page) 
    for elem in data: 
     if elem['symbol'] == "mtgoxUSD": 
      print elem 
+0

啊,完美的太感謝你了!我看到的所有地方都說python把它加載成字典。所以這就是我認爲是的原因。謝謝。 – tommo 2013-03-24 10:58:29

+0

我該如何區分列表和字典? – tommo 2013-03-24 11:04:43

+0

對不起,我有另一個問題.... 爲什麼 如果elem ['symbol'] 不同於 if ['symbol'] ? – tommo 2013-03-24 11:13:56