Я создаю скрипт, который принимает файловую рамку художников, передает их в Spotify API и возвращает дополнительную информацию. Я изо всех сил пытаюсь передать файловую рамку художников итеративно функции, которая вызывает Spotify.
У меня есть две функции:
artists = grabArtists()
который возвращает список художников, таких как:
0 Gas
1 System
3 Finlay Shakespeare
4 Boards Of Canada
6 Delia Derbyshire Appreciation Society
Тогда у меня есть функция захватить данные Spotify Artist...
def grabSpotifyData(searchQ):
# ERASE CACHE AND PROMPT FOR USER PERMISSION
client_credentials_manager = SpotifyClientCredentials()
sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager)
# SEARCH FOR AN ARTIST
searchQuery = searchQ
search = sp.search(searchQuery, 1, 0, "artist")
artist = search['artists']['items'][0]
genres = artist['genres']
image = artist['images'][0]['url']
pop = artist['popularity']
followers = artist['followers']['total']
return genres, image, pop, followers
Я могу получить данные для одного результата довольно просто со следующим. Как я могу сделать это итеративным, чтобы он проходил через список исполнителей и добавлял контекст о художнике?
artists = grabArtists()[0]
result = grabSpotifyData(artists)
df = pd.DataFrame([(artists), (result[0]), (result[1]), (result[2]),
(result[3])])
df = df.T
Он должен вернуть рамку данных, где находятся столбцы: Artist, Genres, Images, Popularity, Followers.
Заранее спасибо!
Я думаю, вы можете передать художников как список итеративно на api:
df = []
for artist in artists:
result = grabSpotifyData(artist)
d0 = pd.DataFrame([(artists), (result[0]), (result[1]), (result[2], (result[3])])
df.append(d0)
df = pd.concat(df, axis=1)
df = pd.DataFrame()
for artist in artists:
try:
results = grabSpotifyData(artist)
except IndexError:
pass
df = df.append(results)
df = pd.DataFrame(df)
df = df.reset_index()