用python解析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"

workplace api返回json响应:

    {
    "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密钥。