TypeError:在Python中,列表索引必须是整数,而不是str

2024-10-01 13:35:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我这两天来一直有这个问题,我不能解决它。在

import urllib.request
import json
import base64
name = "koalaaaa"
url = "https://api.mojang.com/users/profiles/minecraft/" + name
rawdata = urllib.request.urlopen(url)
newrawdata = rawdata.read()
jsondata = json.loads(newrawdata.decode('utf-8'))
results = jsondata['id']
url_uuid = "https://api.mojang.com/user/profiles/" + results + "/names"
rawdata_uuid = urllib.request.urlopen(url_uuid)
newrawdata_uuid = rawdata_uuid.read()
jsondata_uuid = json.loads(newrawdata_uuid.decode('utf-8'))
results = jsondata_uuid['name']
print (results)

我得到了一个错误:

^{pr2}$

Tags: namehttpsimportcomapijsonurluuid
3条回答

您的jsondata_uuid包含一个包含如下内容的词典列表:

[{'name': 'Deamti'}, {'changedToAt': 1423576506000, 'name': 'ChocolateBanana'}, {'changedToAt': 1426793965000, 'name': 'IMBHARLOW'}, {'changedToAt': 1430137396000, 'name': 'SuckUp'}, {'changedToAt': 1437970183000, 'name': 'lllllll'}, {'changedToAt': 1440592843000, 'name': 'Koalaaaa'}]

你想要哪把'名字'钥匙?在

更改results = jsondata_uuidresults = jsondata_uuid['name']行,您将看到结果。然后,你可以想出一种方法把名字分类。在

jsondata_uuid是一个dict列表,每个dict都包含一个name。要将它们全部打印出来,可以执行print([data['name'] for data in jsondata_uuid])。在

提示:使用requests代替urllib。在

jsondata_uuid是一个列表,不能使用键从中获取项,而可以使用数字。在

如果它包含字典作为第一项,则可以使用以下命令从字典中获取值:

results = jsondata_uuid[0]['name']

相关问题 更多 >