我只有幾天的時間進入我的Python體驗,所以我很抱歉用一個嬰兒問題來污染站點。 我正在嘗試爲XBMC編寫附加組件,我相信它使用Python 2.4。我訪問過一個web API,它以JSON封裝了返回。我保存了url返回到一個WebHTML列表(我想列表!)。當我進入從計算器教程如下:Python - 用於提取JSON響應項目的基本命令
decoded = json.loads(WebHTML)
print 'DECODED:', decoded
我得到了我的日誌如下:
NOTICE: {u'totalItems': 1, u'query': u'Ludwig van Beethoven Op 67 Symphony No 5 in Cm (Fate)', u'kind': u'volumes#volumes', u'items': [{u'scoreId': u'IMSLP01056', u'pageCount': 42, u'title': u'Symphony No.5, Op.67 - Complete Score (S.464/5)', u'kind': u'volumes#volume', u'authors': [u'Beethoven, Ludwig van'], u'year': 1807, u'selfLink': u'http://www.peachnote.com/rest/api/v0/score?id=IMSLP01056'}]}
我想提取用於後續的URL調用,即IMSLP01056的scoreId,但我正在用正確的命令掙扎。當我嘗試:
dict = json.loads(WebHTML)
dict['items']['scoreId']
print dict['items']['scoreId']
返回日誌錯誤是:
TypeError: list indices must be integers, not str
如果我嘗試:
print dict[4][1]
返回
KeyError: (4,)
我已經嘗試了各種的JSONloads命令,但不能得到任何工作。我總是得到一個錯誤開端:
IOError: (2, 'No such file or directory', '{\n "kind": "volumes#volumes",\n "query": "Ludwig ..... etc, etc.
所以,我有點難倒以正確的命令,我應該使用。感謝和抱歉,如果這是一個非常基本的問題太多的信息。
print dict ['items'] [0] ['scoreId'] – spicavigo 2013-04-30 09:51:18
使用'dict'作爲變量名是一個非常糟糕的主意,因爲它會隱藏內置名稱。 – 2013-04-30 09:52:00
謝謝larsmans,我已將'dict'改爲'scoreId',但我仍然得到相同的錯誤。 – user2335216 2013-04-30 09:56:49