Python ::将列表作为参数传递

时间:2016-04-21 00:17:34

标签: python list dictionary

responses中的

pyen,一个用于音乐数据的精简库,以这种方式返回字典:

{u'id': u'AR6SPRZ1187FB4958B', u'name': u'Wilco'}

我循环并打印艺术家:

response = en.get('artist/search', artist_location='Chicago')

artists = response['artists']
for artist in artists:
   sys.stdout.write("song by {}\n".format(artist['name']))

但我想在此处传递ids列表:

  response = en.get('song/search', artist_ids = ?) //pass a list here?
  for song in response['songs']:
  sys.stdout.write("\t{}\n".format(song['title']))

这可能吗?怎么样?

2 个答案:

答案 0 :(得分:3)

pyen是一个非常薄的包装器,您应该始终直接检查EchoNest API文档。根据{{​​3}},song/search端点不接受多个artist_id

答案 1 :(得分:2)

如果您查看Echo Nest API,您会发现artist_id搜索的歌曲并不支持多个参数。

因此,这也是对pyen的限制,也是该API的消费者。

相反,您必须在一系列请求中打印歌曲:

artist_ids = ['AR54RGR1187FB51D10', 'AR6SPRZ1187FB4958B', 'AR5KAA01187FB5AEB7']
for artist_id in artist_ids:
    for song in en.get('song/search', artist_id=artist_id).get('songs', []):
        sys.stdout.write("\t{}\n".format(song['title']))