【问题标题】:Indexing the first element of a list of a list and add it to new list索引列表列表的第一个元素并将其添加到新列表
【发布时间】:2021-09-30 08:48:52
【问题描述】:

我正在使用 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 indexing spotify


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-06
      • 2019-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多