Mam poniższy kod, aby pobrać tagi artystów (gatunki) z ostatniego apm fm. Każdy artysta może mieć wiele tagów takich jak:
{"artist": {"tags": {"tag": [{"name": "alternative",
"url": "https://www.last.fm/tag/alternative"}, {"name": "indie",
"url": "https://www.last.fm/tag/indie"}, {"name": "electronic",
"url": "https://www.last.fm/tag/electronic"}]},
Chcę przechowywać wszystkie tagi artysty w artists[i]["tags"]
. Problem polega na tym, że właśnie otrzymuję ostatni tag z tym kodem:
for artist in artist_data["artist"]["tags"]["tag"]:
tags = artist["name"]
artists[i]["tags"] = tags
print(artists[i])
bardziej powiązany kod:
artists = {}
for i,v in artists.items():
chosen = artists[i]["name"].replace(" ", "+")
artist_response = requests.get("http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&format=json&artist="+chosen+"&api_key="+api_key)
artist_data = artist_response.json()
for artist in artist_data["artist"]["tags"]["tag"]:
tags = artist["name"]
artists[i]["tags"] = tags
print(artists[i])
Czy wiesz, jak przechowywać wszystkie tagi w artists[i]["tags"]
?
Odpowiedzi:
1 dla odpowiedzi № 1Wymieniasz artists[i]["tags"]
z nowym tags
w każdej pętli.
Możesz dołączyć do niego w ten sposób:
artists[i]["tags"].append(tags)
Musisz stworzyć artists[i]["tags"] = []
przed pętlą.