#python #pandas #sklearn-pandas
#python #pandas #sklearn-pandas
Вопрос:
Я читаю CSV-файл с идентификатором исполнителя, и мне нужно получить данные о жанре исполнителя из Spotify API. Но проблема в том, что в Spotify есть несколько жанров для одного исполнителя (в формате JSON), и я хочу сохранить все это в одной строке (в pandas), используя разделитель-запятую.
например. хип-хоп, поп-рэп, грязный южный рэп.
Как я могу это сделать?
Вот мой код:
TOKEN = "BQCuNvMU0Gr_"
url1 = r"https://api.spotify.com/v1/artists/"
headers = {'Authorization': "Bearer {}".format(TOKEN)}
df = pd.read_csv('top_artists.csv',names=["Artist_URI","Artist_Name"])
#iterate over each artist
for row_ID in df['ARTIST_ID'].iteritems():
url = url1 row_ID
r = requests.get(url, headers=headers) #each artist has a different URL
json_data = r.json()
#get artist genre(s) and append to genre column
for genre_data in json_data['genres']:
df['genre'] = genre_1 genre_2 genre_3 ...
Комментарии:
1. Вы можете просто сделать
.join()
наjson_data['genres']
2. Можете ли вы предоставить
json_data
?3. {‘external_urls’: {‘spotify’: ‘ open.spotify.com/artist/1G9G7WwrXka3Z1r7aIDjI7 ‘}, ‘подписчики’: {‘href’: Нет, ‘всего’: 1053458}, ‘жанры’: [‘atl hip hop’, ‘dirty south rap’, ‘хип-хоп’, ‘pop rap’, ‘рэп’, ‘южный хип-хоп’],’href’: ‘ api.spotify.com/v1/artists/1G9G7WwrXka3Z1r7aIDjI7 ‘
Ответ №1:
TOKEN = "BQCuNvMU0Gr_"
url1 = r"https://api.spotify.com/v1/artists/"
headers = {'Authorization': "Bearer {}".format(TOKEN)}
df = pd.read_csv('top_artists.csv',names=["Artist_URI","Artist_Name"])
#iterate over each artist
for row_ID in df['ARTIST_ID'].iteritems():
url = url1 row_ID
r = requests.get(url, headers=headers) #each artist has a different URL
json_data = r.json()
#get artist genre(s) and append to genre column
#No need of For Loop here
genres_list = json_data['genres']
df['genre'] = "".join(a)