索引列表列表的第一个元素并将其添加到新列表

Indexing the first element of a list of a list and add it to new list

我正在使用 Spotify API 并尝试将播放列表中歌曲艺术家的第一个流派添加到新列表中:

url = 'https://api.spotify.com/v1/artists'
params = {"ids": artist_id_new} 
response_artists = requests.get(url, headers = headers , params = params).json()

genre = []

for artist in response_artists['artists']:
    genre.append(artist['genres'])

genre

流派列表输出如下所示:

[['deep disco house',
  'deep house',
  'disco house',
  'float house',
  'funky house',
  'house',
  'indie soul',
  'minimal tech house'],
 ['latin', 'latin pop', 'pop venezolano', 'reggaeton', 'trap latino'],
 ['doomcore'],
 ['vapor twitch'], ...]

但是流派列表应该只包含第一个流派,而不是所有流派。所以我想简单地索引每个迭代列表项的第一个元素,如下所示:

for artist in response_artists['artists']:
    genre.append(artist['genres'][0])

但这总是给我一个 'list index out of range' 错误。 我该如何解决?

提前致谢!

有时 Spotify 没有为特定艺术家标记流派,因此您需要在循环中添加检查:

for artist in response_artists['artists']:
    if len(artist['genres'])>0:
        genre.append(artist['genres'][0])
    else:
        genre.append(None)

当没有流派可用时,这将添加一个 None 值。