在 Spotify 的搜索 API 中按艺术家搜索的正确 python 语法?
Posted
技术标签:
【中文标题】在 Spotify 的搜索 API 中按艺术家搜索的正确 python 语法?【英文标题】:Correct python syntax to search by artist in Spotify's Search API? 【发布时间】:2018-02-13 09:42:05 【问题描述】:使用 Spotify 的 API 按艺术家搜索的正确 Python 语法是什么?也许我错过了一些明显的东西(盯着这个太久了)
根据文档,标题“授权”和参数“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)
【问题讨论】:
【参考方案1】:列表是一个列表,而不是地图和列表的混合体,例如 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' )
注意 headers 参数must be in its plural form, not "header"。
最后,您可能对spotipy 感兴趣,它是 Spotify 网络 API 的简单客户端。
【讨论】:
这正是我想要的:) 谢谢。我还必须修复类型错误,因为 access_token 和 artist_name 是变量而不是 str。这是否意味着我必须在参数中硬编码值,或者有没有办法在其中放置一个变量? 不,变量很可能只是包含了超出您预期的内容。像往常一样,很难说“类型错误”:P【参考方案2】:@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' )
【讨论】:
【参考方案3】:@Ilja 的回答很好。或者,您可以在 URL 中嵌入参数(因为您只有两个,而且都比较短),例如:
artist_info = requests.get('https://api.spotify.com/v1/search?q=&type='.format(artist_name, 'artist'), header = 'access_token': access_token)
【讨论】:
以上是关于在 Spotify 的搜索 API 中按艺术家搜索的正确 python 语法?的主要内容,如果未能解决你的问题,请参考以下文章