TypeError:字符串索引必须是整数-JSON Python



所以我得到了错误:

Traceback (most recent call last):
File "C:/Users/User/PycharmProjects/db/dm testing.py", line 12, in <module>
for id in ids['id']:
TypeError: string indices must be integers

带有以下代码:

import requests
import json
token = 'mytoken'
headers = {
'Authorization': token,
}
r = requests.get('https://canary.discordapp.com/api/v6/users/@me/channels', headers=headers).json()
ids=json.dumps(r)
for id in ids['id']:
print(id)

JSON如下所示:

[
{
"id": "771634716042461195", 
},
{
"id": "771654126345781278", 
}, 
{
"id": "771658044526034967", 
}
]

我想打印出通道id,在这种情况下是:771634716042461195和771654126345781278。

非常感谢您的帮助。

好的,所以我找到了解决方案,这是我的最终代码:

import requests
import json
token = 'mytoken'
headers = {
'Authorization': token,
}
r = requests.get('https://canary.discordapp.com/api/v6/users/@me/channels', headers=headers).json()
x = 0
for i in range(len(r)):
print(r[x]['id'])
x+=1

它打印所有通道的ID。希望这能帮助其他人。

您正在将解析后的json转换回字符串,但您希望它是一个字典,而不是字符串。您可以完全删除第二行。

r = requests.get('https://canary.discordapp.com/api/v6/users/@me/channels', headers=headers).json()
for id in r['id']:
print(id)

最新更新