我正在努力尝试从JSON
输出中提取密钥。
请求输出以下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:字符串索引必须为整数
您能帮我解决代码吗?
答案 0 :(得分:2)
我不确定json_header
和json_data
之间的关系。
但是如果您的json是
{"__ar":1,"payload":[{"id":"USERID","name":"USERNAME"}]}
所以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,则至少很奇怪,并且看起来像是您正在调用的任何后端中的错误。