python - 无法访问 JSON 输出中的 key : string indices must be integers

标签 python json

我正在努力尝试从 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_headerjson_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/

相关文章:

python - 提起一个 tkMessageBox

Python循环遍历Dataframe 'Series'对象没有属性

javascript - 需要帮助生成将 json 对象转换为特定结构的算法

javascript - 不允许 HTTP PUT 请求

python - 是什么导致 'int' 对象没有属性 'has_key' ?

python - 在python中调用C程序函数-段错误

json - 搜索并替换很大文件中的字符串

JSON 异步应用服务器?

python - Pandas:将数据帧的内容合并到单个列中(作为 dict/json 列表)

javascript - 为什么 parseJSON 在服务器的以下响应中失败?