2016-08-21 4 views
1

Я только начинаю с Python, и вот что я пытаюсь сделать. Я хочу получить доступ к API Bing, чтобы получить изображение дневного URL. Я могу импортировать json-файл в порядке, но тогда я не могу разобрать данные, чтобы извлечь URL-адрес изображения.Анализ данных JSON с помощью python

Вот мой питон скрипт:

import urllib, json 

url = "http://www.bing.com/HPImageArchive.aspx? format=js&idx=0&n=1&mkt=en-US" 
response = urllib.urlopen(url) 
data = json.loads(response.read()) 

print data 

print data["images"][3]["url"] 

Я получаю эту ошибку:

Traceback (most recent call last): 
    File "/Users/Robin/PycharmProjects/predictit/api.py", line 9, in <module> 
    print data["images"][3]["url"] 
IndexError: list index out of range 

FYI, вот как выглядит файл JSON как: http://jsonviewer.stack.hu/#http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-US

+0

Существует только один элемент под ''images'', почему вы выбрали' data ["images"] [3] '? – DeepSpace

+0

Из примера, который вы указали, следует использовать 0 индекс – vsminkov

ответ

0
print data["images"][0]["url"] 

там это только один объект в массиве «изображения»

0

Поскольку в списке images есть только один элемент, вы должны иметь data['images'][0]['url'].

Вы также можете видеть, что на вкладке «Просмотр» в «json viewer», к которой вы привязались.

+0

sweet! спасибо, это хороший материал. – Robin

Смежные вопросы