Как перечислить нескольких исполнителей песни?

#python-3.x #spotipy

#python-3.x #spotipy

Вопрос:

Я новичок в Spotipy, поэтому мне нужна помощь.

 searched = sp.search(q=search, type="track", limit=1) 

artist = searched['tracks']['items'][0]['artists'][0]['name']
 

search это из моего бота Discord, и он отлично выполняет поиск, все данные здесь. Но я не мог понять, как получить всех исполнителей песни. Я знаю, что это должно что-то делать с ['0'] there, потому что это просто получает первый элемент. Какие-либо исправления?

Ответ №1:

Попробуйте это и сообщите, как выглядит результат:

 artist = searched['tracks']['items'][0]['artists']
 

Ответ №2:

Я считаю, что исполнитель — это массив всех исполнителей этой песни (первый, возвращенный из поиска), оттуда вы должны иметь возможность перебирать этот массив, чтобы получить всех исполнителей этой песни. Я думаю, что тогда:

 artist[i]['name']
 

это даст вам имя исполнителя.

Возможно, после [‘artists’] требуется еще один ключ, если вы выведете значение исполнителя на консоль, вы сможете определить точный путь, куда вам нужно идти.

Я нашел аккуратную библиотеку, которая выводит словари (и множество других вещей) в форматированном виде: pprint. Я бы рекомендовал попробовать и посмотреть, сможете ли вы его найти. т.е.

 import pprint as p

p.pprint(artist)
 

Поначалу результат sp.search может быть ошеломляющим, поскольку он включает в себя так много данных (большинство из которых вам, вероятно, не нужны), но я обнаружил, что просмотр словаря с помощью pprint был действительно полезным.