0
lastfm apiから特定の国のトップアーティストを募集しています。イムで成功を収めてartists{}
に各アーティストの名前や店舗を取得:last.fmのトップアルバムを取得する
import requests
api_key = "0929f1144e531702a5563c887cbbade0"
ID = 0
artists = {}
for i in range(1, 3):
artists_response = requests.get('http://ws.audioscrobbler.com/2.0/?method=geo.gettopartists&country=spain&format=json&page=' + str(i) + '&api_key=' + api_key)
artists_data = artists_response.json()
for artist in artists_data["topartists"]["artist"]:
name = artist["name"]
artists[ID] = {}
artists[ID]['ID'] = ID
artists[ID]['name'] = name
ID += 1
しかし、今各アーティストのために私はalbums{},
アーティスト名、アーティストID、名前でTOP5アルバムや店舗を取得したいですアルバム、アルバムのURLが表示されます。
"Artist": "U2", "ID": 175, "ArtistID": 10, "Title": Achtung Baby",
"Image": "https://lastfm-img2.akamaized.net/i/u/174s/a482040d21924ddacd5fe75dedbb1ef2.png"},
"URL": "https://www.last.fm/music/U2/Achtung+Baby"}, "487": {"Date": "2004-01-01"
"Artist": "U2", "ID": 176, "ArtistID": 10, "Description": "None", "Title": "Boy",
... and then the same for the other 3 albums of the top5
Imは、以下のコードでこれを行うが、そのが正しく動作しません:
は、各アーティストの例えば、私はこのようなTOP5アルバムの各アルバムのために一つのレコードを取得したいです。 artistIdは常に「0」と表示され、最初のアーティストの5つのアルバムのみが表示されます。問題はどこにあるのか知っていますか?albums = {}
for i,v in artists.items():
chosen = artists[i]['name'].replace(" ", "+")
topalbums_response = requests.get('http://ws.audioscrobbler.com/2.0/?method=artist.gettopalbums&format=json&artist=' + chosen + '&api_key=' + api_key + '&limit=5')
albums_data = topalbums_response.json()
for album in albums_data['topalbums']['album']:
name = album["name"]
url = album["url"]
albums[ID] = {}
albums[ID]['ID'] = ID
albums[ID]['artist'] = artists[i]['name']
albums[ID]['artistID'] = artists[i]['ID']
albums[ID]['name'] = name
albums[ID]['url'] = url
for image in album['image']:
if (image["size"] == "large"):
if (image["size"] is not None):
image = image["#text"]
albums[ID]['image'] = image
ID += 1
print(albums)
ありがとうございますが、動作しません。アーティストIDが表示されますが、アーティストに関連付けられているように見えるアルバムは、他のアーティストのものでも、すべての結果を返さないアルバム、ただ1つです。 – OzzyW
は、アーティストがループする前にIDを開始しているが、アルバムのループの前ではないという事実に関する回答を編集に追加しました。 –
"albuns = {}"の前に "ID = 0"を追加しましたが、同じ問題が発生します。 – OzzyW