pandas - get subelements

Marchello mail.python.org at marchello.tk
Mon Jul 12 05:07:59 EDT 2021


Hi team,

My need is to extract particular sub-elements (ContactId and 
AssociatedEntity) from below json using pandas.


Json:

{
   "odata.metadata": "https://example1.com/odata/$metadata#Contacts",
   "value": [
     {
       "Addresses": [
         {
           "ContactId": "35aa05d1-21c7-493d-96e3-00003c966732",
           "AssociatedEntity": "ac7a9ec8-b71b-486b-8b3b-41b6bc11f936"
         }
       ],
       "ContactId2": "35aa05d1-21c7-493d-96e3-00003c966732"
     },
     {
       "Addresses": [
         {
           "ContactId": "ca717463-734d-4f2f-a01e-00006ff0c806",
           "AssociatedEntity": "bda08493-7ae0-47cf-8d3a-f1a486498836"
         }
       ],
       "ContactId2": "ca717463-734d-4f2f-a01e-00006ff0c806"
     }
   ]
}


My code so far:

import json
import pandas as pd
txt1 = 
'{"odata.metadata":"https://example1.com/odata/$metadata#Contacts","value":[ 
    {      "Addresses":[        {          
"ContactId":"35aa05d1-21c7-493d-96e3-00003c966732","AssociatedEntity":"ac7a9ec8-b71b-486b-8b3b-41b6bc11f936" 
        }      ],"ContactId2":"35aa05d1-21c7-493d-96e3-00003c966732"    
},{      "Addresses":[        {          
"ContactId":"ca717463-734d-4f2f-a01e-00006ff0c806","AssociatedEntity":"bda08493-7ae0-47cf-8d3a-f1a486498836" 
        }      ],"ContactId2":"ca717463-734d-4f2f-a01e-00006ff0c806"    
}]}'
json2 = json.loads(txt1)
print("json:\n")
print(json2)
df = pd.json_normalize(json2['value'])
print("\npandas df (1):\n")
df1a = df['Addresses'].copy()
print(df1a)

> pandas df (1):
> 0    [{'ContactId': '35aa05d1-21c7-493d-96e3-00003c...
> 1    [{'ContactId': 'ca717463-734d-4f2f-a01e-00006f...
> Name: Addresses, dtype: object

Now how do I get ContactId and AssociatedEntity?
Please advise.

Best,
Marchello


More information about the Python-list mailing list