在Spotify的Search API中按照艺术家搜索python语法是否正确?

时间:2017-09-05 07:20:13

标签: python api spotify

使用Spotify API搜索艺术家的正确python语法是什么?也许我错过了一些明显的东西(一直盯着这个太久了)

根据文档,标题'授权' &安培; param' q'和'键入'是必需的。
https://developer.spotify.com/web-api/search-item/

我尝试过的事情:

artist_name = 'Linkin%20Park'
artist_info = requests.get('https://api.spotify.com/v1/search', header = {'access_token': access_token}, q = artist_name, type = 'artist')

ERROR: TypeError: requests() got an unexpected keyword argument 'q'

然后我想,也许参数必须作为列表发送?:

artist_info = requests.get('https://api.spotify.com/v1/search', header = {'access_token': access_token}, query = list(q = artist_name, type = 'artist'))

可是:

ERROR: TypeError: list() takes at most 1 argument (2 given)

3 个答案:

答案 0 :(得分:3)

列表是一个列表,而不是地图和列表的混合,例如在PHP中。 list() builtin接受0或1位置参数,该参数应该是可迭代的。我强烈建议你通过官方tutorial

您可能正在使用python-requests库。要传递查询参数,例如q参数,you'd pass a dict of parameters as the params argument

artist_info = requests.get(
    'https://api.spotify.com/v1/search',
    headers={ 'access_token': access_token },
    params={ 'q': artist_name, 'type': 'artist' })

请注意标题参数must be in its plural form, not "header"

最后,您可能对spotipy感兴趣,{{3}}是Spotify网络API的简单客户端。

答案 1 :(得分:2)

@ Ilja的回答很好。或者,你可以在URL中嵌入params(因为你只有两个并且都相对较短),例如:

artist_info = requests.get('https://api.spotify.com/v1/search?q={}&type={}'.format(artist_name, 'artist'), header = {'access_token': access_token})

答案 2 :(得分:1)

@ Ilja和@ alfasin的答案提供了良好的指导,但似乎不再有效。

您必须将headers参数更改为authorization并添加字符串Bearer

这对我有用:

artist_info = requests.get('https://api.spotify.com/v1/search',
    headers={ 'authorization': "Bearer " + token}, 
    params={ 'q': artist_name, 'type': 'artist' })