1
resposta

Criei mais duas opções como mencionado, nome do artista e nome do album

Fiz a solicitação abaixo para o nome do artista e nome do álbum, notar que o nome do artista tem uma diferença por ser um array, mas no fim funcionou a partir do momento que eu passei [0], porém não entendi a classificação, como assim ele é um JSON, e porque depois de colocar o [0] ele funciona?

def recommend_id(playlist_id):
  url = [] 
  name = []
  artist = []
  album = []
  for i in playlist_id:
    track = sp.track(i)
    url.append(track['album']['images'][1]['url'])
    name.append(track['name'])
    artist.append(track['artists'][0]['name'])
    album.append(track['album']['name'])
  return name, artist, album, url

Acredito que eu falei da forma correta

1 resposta

Olá Pedro,

Antes de mais nada, desculpe a demora na resposta. Estamos em um esforço para reduzir as dúvidas do fórum.

Vou detalhar alguns pontos para ver se a sequência fica mais clara.

Se imprimimos a recomendada['id'] vamos obter a seguinte saída:

2463     7qiZfU4dY1lWllzX7mPBI3
13421    240audWazVjwvwh7XwfSZE
2942     3Z8FwOEN59mRMxDCtb8N0A
5371     1EWkw4Fa6IlnsAihLUlFFM
13682    4Boj4bBiDv6Ur1zKEvLXBI
15392    4CwA4CdTQqNv18QSAW3Srk
15388    3QqJ44HiM84iyZS0G2IKIP
5271     4vUmTMuQqjdnvlZmAH61Qk
18479    2wOXxtHZgRkkrkEbKLzzqs
2660     5IaHrVsrferBYDm0bDyABy
Name: id, dtype: object

então se eu quiser obter a primeira track posso fazer o seguinte:

track = sp.track(recomendada['id'][2463])

Se imprimir o conteúdo da track vamos ver que a saída está por padrão no formato JSON.

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeSe eu quiser acessar um valor dentro do JSON posso utilizar a chave correspondente a informação que quero acessar. Por exemplo, se usar a chave artists dessa forma:

track['artists']

Vou obter como saída essa lista com um dicionário para cada artista, nesse caso temos apenas um artista:

[{'external_urls': {'spotify': 'https://open.spotify.com/artist/6eUKZXaKkcviH0Ku9w2n3V'},
  'href': 'https://api.spotify.com/v1/artists/6eUKZXaKkcviH0Ku9w2n3V',
  'id': '6eUKZXaKkcviH0Ku9w2n3V',
  'name': 'Ed Sheeran',
  'type': 'artist',
  'uri': 'spotify:artist:6eUKZXaKkcviH0Ku9w2n3V'}]

Como quero acessar a informação do primeiro artista na lista posso usar [0] para acessar essa informação.

track["artists"][0]

Porém, nesse caso a saída será o dicionário com todas as informações do artista. Para acessar apenas o nome do artista preciso usar a chave name.

track["artists"][0]["name"]