使用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)
答案 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' })