2012-03-28 8 views
-1

zur Zeit habe ich die folgenden, die eine json api parst ..Erhalten von json Schlüssel in Python entsprechenden Wert

import simplejson 
import urllib2 

f = urllib2.urlopen('http://fanart.tv/webservice/series/f5b8e776c35e7536eac132802b03281f/80349/json/tvthumb/') 
data = simplejson.load(f) 

imagetypes = ['clearlogo', 'clearart', 'tvthumb', 'seasonthumb', 'characterart'] 

image_list = [] 
# split "name" and "data" 
for title, value in data.iteritems(): 
# run through specified types 
for art in imagetypes: 
# if type has been found 
    if value.has_key(art): 
    # Run through all the items 
     for item in value[art]: 
      info = {} 
      info['url'] = urllib2.quote(item['url'], ':/') # Original image url 
      if info: 
       image_list.append(info) 



print image_list 

folgende Dies gibt ..

[{'url': 'http://fanart.tv/fanart/tv/80349/tvthumb/5287/C_80349%20%284%29.jpg'}, 
{'url': 'http://fanart.tv/fanart/tv/80349/tvthumb/5286/C_80349%20%285%29.jpg'}, 
{'url': 'http://fanart.tv/fanart/tv/80349/tvthumb/5288/C_80349%20%283%29.jpg'}, 
{'url': 'http://fanart.tv/fanart/tv/80349/tvthumb/5289/C_80349%20%282%29.jpg'}, 
{'url': u'http://fanart.tv/fanart/tv/80349/tvthumb/5290/C_80349.jpg'}, {'url': 
'http://fanart.tv/fanart/tv/80349/tvthumb/5291/C_80349%20%280%29.jpg'}] 

Wie gehe ich gerade bekommen die tatsächliche URL in eine Liste von URLs? Wenn Sie die Schritte in Ihrer Antwort erklären könnten, damit ich daraus lernen kann, würde ich es begrüßen. Danke

+0

Ich bin nicht sicher, ich verstehe, was du verlangst. Sie erstellen ein Wörterbuch und legen die URL unter dem Schlüssel "url" ab. Fragen Sie nun, wie Sie die URL nicht in ein Diktat einfügen können? Warum machst du das überhaupt? –

Antwort

1

Wie wäre es damit.

# your old code avoce 
    for item in value[art]: 
     url = urllib2.quote(item['url'], ':/') # Original image url 
     if url: 
      image_list.append(url) 
1
>>> urllist = [{'url': 'http://fanart.tv/fanart/tv/80349/tvthumb/5287/C_80349%20%284%29.jpg'}, 
... {'url': 'http://fanart.tv/fanart/tv/80349/tvthumb/5286/C_80349%20%285%29.jpg'}, 
... {'url': 'http://fanart.tv/fanart/tv/80349/tvthumb/5288/C_80349%20%283%29.jpg'}, 
... {'url': 'http://fanart.tv/fanart/tv/80349/tvthumb/5289/C_80349%20%282%29.jpg'}, 
... {'url': u'http://fanart.tv/fanart/tv/80349/tvthumb/5290/C_80349.jpg'}, {'url': 
... 'http://fanart.tv/fanart/tv/80349/tvthumb/5291/C_80349%20%280%29.jpg'}] 
>>> [item['url'] for item in urllist] 
['http://fanart.tv/fanart/tv/80349/tvthumb/5287/C_80349%20%284%29.jpg', 'http://fanart.tv/fanart/tv/80349/tvthumb/5286/C_80349%20%285%29.jpg', 'http://fanart.tv/fanart/tv/80349/tvth 
umb/5288/C_80349%20%283%29.jpg', 'http://fanart.tv/fanart/tv/80349/tvthumb/5289/C_80349%20%282%29.jpg', u'http://fanart.tv/fanart/tv/80349/tvthumb/5290/C_80349.jpg', 'http://fanart. 
tv/fanart/tv/80349/tvthumb/5291/C_80349%20%280%29.jpg'] 

dass sollten Sie die Urls, die Sie benötigen, aber es scheint wie folgt aus:

for item in value[art]: 
    info = {} 
    info['url'] = urllib2.quote(item['url'], ':/') # Original image url 
    if info: 
     image_list.append(info) 

konnte auf diese vereinfacht werden:

for item in value[art]: 
    url = urllib2.quote(item(['url'], ':/') 
    if url: 
     image_list.append(url)