Python 从lastfm获取传记摘要:TypeError:字符串索引必须是整数

Python 从lastfm获取传记摘要:TypeError:字符串索引必须是整数,python,Python,我使用最新的fm api从指定国家获得顶级艺术家,我想保存每个顶级艺术家的姓名、url和简历。这个名字和url很好用,但是传记不起作用 我这样做是为了获得顶级艺术家的姓名和url: import requests api_key = "" ID = 0 artists = {} for i in range(1, 3): artists_response = requests.get('http://ws.audioscrobbler.com/2.0/?method=geo.get

我使用最新的fm api从指定国家获得顶级艺术家,我想保存每个顶级艺术家的姓名、url和简历。这个名字和url很好用,但是传记不起作用

我这样做是为了获得顶级艺术家的姓名和url:

import requests

api_key = "" 
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()

    #print(artists_data)

    for artist in artists_data["topartists"]["artist"]:
        name = artist["name"]
        url = artist["url"]


        image = artist["image"]

        artists[ID] = {}
        artists[ID]['ID'] = ID
        artists[ID]['name'] = name
        artists[ID]['url'] = url
        artists[ID]['image'] = image
        ID += 1


#print(artists)
在这一点上,工作正常。但是现在我想获得每个顶级艺术家的传记摘要,但是在printartist[summary]上出现了错误TypeError:字符串索引必须是整数:


从您的示例数据可以清楚地看出,artist_data[artist][bio]是一个字典,因此循环将该字典的键(即字符串)分配给artist


由于您没有提供艺术家数据[顶级艺术家]的示例,我无法解释为什么不会产生相同的错误。

这是因为艺术家是一个字符串而不是字典。谢谢您的回答。但是你知道为什么在这一部分中,艺术家在艺术家数据[topartists][artist]:效果很好吗?因为在这种情况下,它可能是一本词典。但是这两个回答的格式相同。这可能有助于了解艺术家数据的至少一些相关内容。谢谢。艺术家数据[顶级艺术家]示例:{'topartists':{'name':'U2','listeners':'3390992','mbid':'a3cb23fc-acd3-4ce0-8f36-1e5aa6a18432','url':,…和艺术家数据[顶级艺术家][艺术家]?这:{'name':'U2','listeners':'3390992','mbid':'a3cb23fc-acd3-4ce0-8f36-1EAA6A18432','url','streamable','image','0'text:'。。。
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()

    #print(artist_data)

    for artist in artist_data['artist']['bio']:
       print(artist["summary"])
       bio = artist["summary"]
       artists[ID]['bio'] = bio

   # print(artist_response)