用python解析json响应
workplace api返回json响应:用python解析json响应,python,json,Python,Json,workplace api返回json响应: { "name": "AA", "owner": { "name": "ser1", "id": "1234" }, "id": "567", "admins": { "data": [ { "name": "codez", "id": "457"
{
"name": "AA",
"owner": {
"name": "ser1",
"id": "1234"
},
"id": "567",
"admins": {
"data": [
{
"name": "codez",
"id": "457"
},
],
"paging": {
"cursors": {
"before": "qwrqwreqreqr",
"after": "teyryryryr"
}
}
}
我使用以下for循环访问python中的json响应:
for item in feed:
row = [item["name"],item["id"], item["email"], item["privacy"],item["updated_time"],item["admins"]["data"]["name"]]
我得到的错误是“列表索引必须是整数或片,而不是列表”。当我删除项[“管理员”][“数据”][“名称”]
时,我没有收到错误消息
任何建议都将不胜感激 您需要访问列表。数据节点包含一个列表,因此您需要访问索引0,然后访问键值对
for item in feed:
row = [item["name"],item["id"], item["email"], item["privacy"],item["updated_time"],item["admins"]["data"][0]["name"]]
数据映射到大小为1的列表,因此您可以执行项[“管理员”][“数据”][0][“名称”]
虽然使用row=item.values()
item[“admins”][“data”][0][“name”]
可以更轻松地实现这一点,因为item[“admins”][“data”][“data”][/code>是一个列表,因为使用item[“admins”][“data”][/code>可以获得一个数组,而不是dict。如果要从数组中获取名称,也应该使用一个内部循环。即使使用item[“admins”][“数据”][0][“名称”],我得到错误“keyrerror:admins”。它无法访问嵌套字典您可以输出完整的WorkplaceAPI响应@user3447653吗?我已将整个api响应放在我的问题中问题中发布的内容不是有效的json。我以为这是一个片段。因此,要么不是完整响应,要么响应无效JSONE即使项为[“admins”][“data”][0][“name”],我也会得到错误“Keyerror:admins”。它不能访问嵌套的字典,这一定意味着您现在从API接收到的响应是另一回事。使用打印并尝试调试。您发布的错误表明它能够访问admins密钥。