私は現在、SpotifyはAPIを使用している、と私は、このエンドポイントでアーティストからトップトラックを取得したい、PythonとフラスコでAPIを消費するために学んでいる:https://api.spotify.com/v1/artists/ {ID} /トップトラック、あなたが見ることができるように、私は検索エンドポイントを使用するために、彼らのトップトラックを得るためにアーティストのIDが必要です。https://api.spotify.com/v1/search?q=name&type=artistこれは私にJSONのデータを与えてくれます。2つのspotifyエンドポイントをPythonで互いに補完する方法
私の質問は、Top-Tracksエンドポイントを、エンドポイントから取得したIDでどのように使用することができるのですか?アーティストのIDを格納してエンドポイントのURLに連結できるようにするために、 "ide"という変数を作成しますが、今は自分のコードのどこにTop-Tracks URLがあるのかわかりません。関数、格納されたIDを使用して変数を呼び出す方法
は、ここに私のコードです:
from flask import Flask, request, render_template, jsonify
import requests
app = Flask(__name__)
@app.route("/api/artist/<artist>")
def api_artist(artist):
params = get_id(artist)
return jsonify(params)
@app.route("/api/track/<artist>")
def api_track(artist):
params = get_track(artist)
return jsonify(params)
def get_id(artist):
headers = {
"client_id": "xXxXx",
"client_secret": "XxXxX"
}
response = requests.get("https://api.spotify.com/v1/search?q=" + artist +"&type=artist", headers=headers)
if response.status_code == 200:
print(response.text)
list=[]
response_dict = response.json()
results = response_dict["artists"]
items = results ["items"]
for value in items:
list.append(value["id"])
params = {
"id": list[0]
}
return list[0]
そして、ここで私はトップのトラックを取得しようとする方法ですが、それは動作しません。
def get_track(artist):
ide = list[0]
can = requests.get("https://api.spotify.com/v1/artists/"+ ide + "/top-tracks?country=ES", headers=headers)
return can
Pythonコードを投稿するときは、字下げを正確に再現してください。さもなければ、あなたは人々に見せているコードに新しい問題を導入しています。 – khelwood
@khelwood申し訳ありませんが、ありがとうございました。 – nellydesu
レスポンスのエラーコード(ステータスコード)は何ですか?それは良い最初の手がかりです。それを得るためのPythonの要求を見てください。 – FuzzyAmi