Python Can';JSON输出中的t访问键:字符串索引必须是整数
我正在努力从Python Can';JSON输出中的t访问键:字符串索引必须是整数,python,json,Python,Json,我正在努力从JSON输出中提取密钥 请求输出此JSON: for (;;);{"__ar":1,"payload":[{"id":"USERID","name":"USERNAME"}]} 此时,为了获得有效的JSON,我去掉了“for(;);”: json_header = (data.text).replace('for (;;);', '') 现在我需要打印USERID和USERNAME。这就是我所尝试的: json_data = json.dumps(json_header) jso
JSON
输出中提取密钥
请求输出此JSON
:
for (;;);{"__ar":1,"payload":[{"id":"USERID","name":"USERNAME"}]}
此时,为了获得有效的JSON,我去掉了“for(;);”:
json_header = (data.text).replace('for (;;);', '')
现在我需要打印USERID和USERNAME。这就是我所尝试的:
json_data = json.dumps(json_header)
json_objects = json.loads(json_data)
print(json_objects['payload']['id'])
但我明白了:
TypeError:字符串索引必须是整数
你能帮我修复代码吗?我不确定
json\u头
和json\u数据
之间的关系是什么。
但是如果你的json是
{"__ar":1,"payload":[{"id":"USERID","name":"USERNAME"}]}
因此,payload
是一个dict数组。要访问阵列中的第一个(也是唯一一个)dict,请执行以下操作:
payload = json_objects['payload']
first_elemet = payload[0]
id = first_element['id']
print(id)
或全部完成并准备好执行:
import json
json_string = '{"__ar":1,"payload":[{"id":"USERID","name":"USERNAME"}]}'
json_objects = json.loads(json_string)
print(json_objects['payload'][0]['id'])
顺便说一下:使用for循环的原始数据看起来很可怕。如果这应该是JSON,那么它至少很奇怪,在您调用的任何后端中看起来都像一个bug。
print(JSON_对象['payload'][0]['id'])
感谢您如此快速地回答。不幸的是,它仍然给我同样的错误。我知道密码很可怕。事实上,它实际上不应该被请求调用……我以理解代码的方式对它进行了测试(见更新的答案)。如果这不起作用,请粘贴完整的可运行代码段以重现错误。