2013-03-01 40 views
0

所以我試圖學習如何搜索trakt.tv的api的輸出,並只返回某個節目的信息。 json輸出如下在Python中搜索json輸出

[ 
    { 
     "title": "NCIS", 
     "year" : 2003, 
     "url": "blah" 
    }, 
    { 
     "title": "Jeffersons", 
     "year" : 1902, 
     "url": "notreally" 
    } 
] 

:正確格式化的編輯代碼。

我只想找到標題NCIS的信息。我遇到了獲取信息的問題。可能是因爲我見過的所有東西都與json.dump或json.loads有關,我試圖用data = json.load(urllib2.urlopen(url))

我基本上只想顯示show:0如果標題與NCIS匹配。我只是不知道如何。

+0

什麼[trakt.tv API方法] (http://trakt.tv/api-docs)你在用嗎? – 2013-03-01 18:55:12

+0

搜索/顯示方法 – crawln 2013-03-01 19:13:46

+0

然後,您的示例JSON錯誤地表示實際輸出,就[搜索/顯示文檔](http://trakt.tv/api-docs/search-shows)而言。 – 2013-03-01 19:16:07

回答

4

/search/shows API method返回與您的搜索相匹配的節目列表(每個映射)。

你可以簡單地遍歷這些和符合特定標題:

data = json.load(urllib2.urlopen(url)) 

for show in data: 
    if show['title'] == 'NCIS': 
     # matching show 

或者你可以使用一個生成器表達式來獲得一個匹配顯示:

try: 
    ncis_show = next(show for show in data if show['title'] == 'NCIS') 
except StopIteration: 
    ncis_show = None # not found 
+0

使用next()是非常優雅的IMO – woozyking 2013-03-01 19:35:31