Я могу сделать успешный запрос в Spotify, ищущий исполнителя. Моя проблема в том, что я хочу вытащить URL-адрес изображения исполнителя из ответа JSON.
Каждый раз, когда я пытаюсь получить URL, я получаю сообщение об ошибке
TypeError: list indices must be integers or slices, not str
Мой код выглядит следующим образом:
import requests
import pyCiscoSpark
import json
import sys
def _url(path):
return 'https://api.spotify.com/v1/search' + path
artist = 'AC/DC'
spotifyR = requests.get(_url('?q={:s}&type=artist'.format(artist)))
spotifyJson = spotifyR.json()
req = spotifyJson['artists']['items']['images']['url']
print(req)
Мне нужен URL-адрес изображений в dict, чтобы я мог выбрать правильный размер изображения, которое есть в Spotify.
2 ответа
Вы можете визуально взглянуть на объект,
from pprint import pprint
pprint(spotifyJson)
Действительно, как указал jonrsharpe, «items» - это список, поэтому вы либо перебираете его, либо выбираете один элемент. «Изображения» - это тоже список.
images = spotifyJson['artists']['items'][0]['images']
for img in images:
print(img['width'])
print(img['height'])
print(img['url'])
Значение ключа 'items' в ответе json - это список словарей. Вы можете сделать что-то вроде:
images = spotifyJson['artists']['items'][0]['images']
for img in images:
print img
Это напечатает информационный словарь для всех изображений. Затем вы можете обработать, какой из URL-адресов вы хотите оттуда :)
Похожие вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.