'unable to normalize the json data fully

I'm trying to normalize the below json data, but the data of "permissions" array is not getting normalized. I have used the "normalize" method of the pandas but not getting the desired output. I want all the data like ("permissions.id", "permissions.self", "permissions.holder.type" and so on) inside the permissions array for every object(there will be multiple objects in that) Can any one help me out for this?

 {
        "permissionSchemes": [
            {
                "expand": "permissions,user,group,projectRole,field,all",
                "id": 10002,
                "self": "https://api.atlassian.com/ex/jira/bacd1a93-d349-44c5-b786-b79cc80f7d31/rest/api/3/permissionscheme/10002",
                "name": "CDP: Simplified Permission Scheme",
                "scope": {
                    "type": "PROJECT",
                    "project": {
                        "id": "10002"
                    }
                },
                "permissions": [
                    {
                        "id": 11079,
                        "self": "https://api.atlassian.com/ex/jira/bacd1a93-d349-44c5-b786-b79cc80f7d31/rest/api/3/permissionscheme/10002/permission/11079",
                        "holder": {
                            "type": "projectRole",
                            "parameter": "10106",
                            "expand": "projectRole"
                        },
                        "permission": "VIEW_ISSUES"
                    },
                    {
                        "id": 11078,
                        "self": "https://api.atlassian.com/ex/jira/bacd1a93-d349-44c5-b786-b79cc80f7d31/rest/api/3/permissionscheme/10002/permission/11078",
                        "holder": {
                            "type": "projectRole",
                            "parameter": "10106",
                            "expand": "projectRole"
                        },
                        "permission": "VIEW_PROJECTS"
                    },
               
            ]
        }
    ]
}


Solution 1:[1]

You can try with pandas.json_normalize()

df = pd.json_normalize(data['permissionSchemes'], record_path=['permissions'], meta=['expand', 'id', 'self', 'name', ['scope', 'type'], ['scope', 'project', 'id']], record_prefix='permissions.')
   permissions.id  \
0           11079
1           11078

                                                                                                            permissions.self  \
0  https://api.atlassian.com/ex/jira/bacd1a93-d349-44c5-b786-b79cc80f7d31/rest/api/3/permissionscheme/10002/permission/11079
1  https://api.atlassian.com/ex/jira/bacd1a93-d349-44c5-b786-b79cc80f7d31/rest/api/3/permissionscheme/10002/permission/11078

  permissions.permission permissions.holder.type permissions.holder.parameter  \
0            VIEW_ISSUES             projectRole                        10106
1          VIEW_PROJECTS             projectRole                        10106

  permissions.holder.expand                                        expand  \
0               projectRole  permissions,user,group,projectRole,field,all
1               projectRole  permissions,user,group,projectRole,field,all

      id  \
0  10002
1  10002

                                                                                                       self  \
0  https://api.atlassian.com/ex/jira/bacd1a93-d349-44c5-b786-b79cc80f7d31/rest/api/3/permissionscheme/10002
1  https://api.atlassian.com/ex/jira/bacd1a93-d349-44c5-b786-b79cc80f7d31/rest/api/3/permissionscheme/10002

                                name scope.type scope.project.id
0  CDP: Simplified Permission Scheme    PROJECT            10002
1  CDP: Simplified Permission Scheme    PROJECT            10002

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Ynjxsjmh