在 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】:

列表是一个列表,而不是地图和列表的混合体,例如 phplist() 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 语法?的主要内容,如果未能解决你的问题,请参考以下文章

Spotify 搜索栏 api,允许用户搜索艺术家并接收艺术家排名前 5 的专辑

Spotify 公共搜索 API

Spotify 元数据 API:限制搜索结果

是否可以保存来自 Spotify 搜索 API 的结果?

Spotify API - 自动完成搜索结果为空

如何使用 Spotify API 将艺术家的姓名添加到端点?