2013-03-01 3 views
0

Donc j'essaie d'apprendre comment rechercher la sortie de l'API de trakt.tv et de ne renvoyer que les informations pour un certain spectacle. La sortie de json est la suivanterecherche json ouput en python

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

: code édité pour le formatage correct.

J'essaie de trouver uniquement l'information pour le titre NCIS. et j'ai rencontré un problème pour obtenir l'information. Peut-être parce que tout ce que j'ai vu traite avec json.dump ou json.loads et j'essaie de le faire avec data = json.load(urllib2.urlopen(url))

Je veux simplement seulement afficher show: 0 si le titre correspond à NCIS. Je ne suis pas sûr de comment.

+0

Qu'est-ce que [trakt.tv méthode API] (http://trakt.tv/api-docs) utilisez-vous? –

+0

Méthode de recherche/affichage – crawln

+0

Ensuite, votre exemple JSON donne une fausse représentation de la sortie réelle, en ce qui concerne [la documentation pour search/shows] (http://trakt.tv/api-docs/search-shows). –

Répondre

4

Le /search/shows API method renvoie une liste d'émissions (chacune une correspondance) correspondant à votre recherche.

Vous pouvez boucle simplement sur ceux-ci et correspondre au titre spécifique:

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

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

ou vous pouvez utiliser une expression de générateur pour obtenir un spectacle correspondant:

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

L'utilisation de next() est très élégant imo – woozyking