es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Existe una forma específica de tratar errores en un bucle en Python?

Encontré un cuaderno, pero me quedé en este punto In[10]:

import pandas as pd

Recorre los URIs de las pistas y obtén el URI del artista utilizando la API.
Luego utiliza el URI del artista para obtener los géneros asociados a ese artista.
Almacena todo esto en un diccionario.

for t_uri in track_uris:
    dict_genre[t_uri] = {'artist_uri': "", "genres":[]}

    r = requests.get(BASE_URL + 'tracks/' + t_uri, headers=headers)
    r = r.json()
    a_uri = r['artists'][0]['uri'].split(':')[2]
    dict_genre[t_uri]['artist_uri'] = a_uri

    s = requests.get(BASE_URL + 'artists/' + a_uri, headers=headers)
    s = s.json()
    dict_genre[t_uri]['genres'] = s['genres']
KeyError
Traceback (most recent call last) <ipython-input-43-3c5b75bf03e3> in <module>()
    14     r = requests.get(BASE_URL + 'tracks/' + t_uri, headers=headers)
    15     r = r.json()
--- 16     a_uri = r['artists'][0]['uri'].split(':')[2]
    KeyError: 'artists'

Referencia:
– https://towardsdatascience.com/visualizing-spotify-data-with-python-tableau-687f2f528cdd
– https://jovian.ai/abode118/spotify-data-prep

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El error indica que la clave ‘artists’ no está presente en el diccionario ‘r’. Esto significa que la llamada de API para obtener información de la pista no incluyó la clave ‘artists’ en la respuesta, lo que provoca un KeyError al intentar acceder a ella en la línea de código siguiente. El código debe modificarse para asegurarse de que la llamada de API para obtener información de la pista incluya la clave ‘artists’ en la respuesta, o para manejar esta posibilidad con lógica condicional. Además, el código debe confirmar que las llamadas de API para obtener información de artista y género están devolviendo los valores esperados antes de intentar asignarlos al diccionario.

Comments are closed.