我是Python的新手,正在使用它与Spotipy编写Spotify应用。基本上,我有一个名为topTracks的音轨字典。我可以通过以下方式访问曲目及其名称/ ID和内容:
topSongs['items'][0]
topSongs['items'][3]['id']
topSongs['items'][5]['name']
所以我要使用一个函数:
recommendations(seed_artists=None, seed_genres=None, seed_tracks=None, limit=20, country=None, **kwargs)
通过此功能,我尝试使用seed_tracks,它需要一个轨道ID列表。因此,理想情况下,我想输入topSongs ['items'] [0] ['id'],topSongs ['items'] [1] ['id'],topSongs ['items'] [2] ['id']等等。我该怎么做?我已经读过*运算符,但不确定如何使用它,或者它是否适用于此。
答案 0 :(得分:3)
您可以尝试如下所示的操作。
ids = [item["id"] for item in topSongs["items"]]
在这里,我刚刚形成了一个简单的例子。
>>> topSongs = {
... "items": [
... {
... "id": 1,
... "name": "Alejandro"
... },
... {
... "id": 22,
... "name": "Waiting for the rights"
... }
... ]
... }
>>>
>>> seed_tracks = [item["id"] for item in topSongs["items"]]
>>>
>>> seed_tracks
[1, 22]
>>>
*
运算符的提示» *
运算符,但为此,您将需要形成一个包含该函数需要的数据列表的列表/元组。
您必须像上面的
seed_tracks
那样形成所有变量。
data = [seed_artists, seed_genres, seed_tracks, limit, country]
最后
recommendations(*data)
**
运算符的提示»如果您愿意使用**
运算符,则数据将会类似于
data = {"seed_artists": seed_artists, "seed_genres": seed_genres, "seed_tracks": seed_tracks, "limit": limit, "country": country}
最后,
recommendations(**data)