我正在努力尝试从 JSON
中提取 key 输出。
请求输出此JSON
:
for (;;);{"__ar":1,"payload":[{"id":"USERID","name":"USERNAME"}]}
此时我摆脱了“for (;;);”为了获得有效的 JSON:
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: string indices must be integers
你能帮我修复代码吗?
最佳答案
我不确定 json_header
和 json_data
之间的关系是什么。
但是如果你的 json 是
{"__ar":1,"payload":[{"id":"USERID","name":"USERNAME"}]}
so payload
是一个字典数组。要访问数组中的第一个(也是唯一一个)字典,请执行以下操作:
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,那么至少会很奇怪,并且看起来像是您调用的任何后端中的错误。
关于python - 无法访问 JSON 输出中的 key : string indices must be integers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56902325/