Pandas - expand nested json array within column in dataframe

前端 未结 3 985
礼貌的吻别
礼貌的吻别 2021-02-05 17:17

I have a json data (coming from mongodb) containing thousands of records (so an array/list of json object) with a structure like the below one for each object:

{         


        
3条回答
  •  借酒劲吻你
    2021-02-05 17:32

    import pandas as pd
    import json
    
    data = '''
    [
      {
       "id":1,
       "first_name":"Mead",
       "last_name":"Lantaph",
       "email":"mlantaph0@opensource.org",
       "gender":"Male",
       "ip_address":"231.126.209.31",
       "nested_array_to_expand":[
          {
             "property":"Quaxo",
             "json_obj":{
                "prop1":"Chevrolet",
                "prop2":"Mercy Streets"
             }
          },
          {
             "property":"Blogpad",
             "json_obj":{
                "prop1":"Hyundai",
                "prop2":"Flashback"
             }
          },
          {
             "property":"Yabox",
             "json_obj":{
                "prop1":"Nissan",
                "prop2":"Welcome Mr. Marshall (Bienvenido Mister Marshall)"
             }
          }
       ]
      }
    ]
    '''
    data = json.loads(data)
    result = pd.json_normalize(data, "nested_array_to_expand", 
                               ['email', 'first_name', 'gender', 'id', 'ip_address', 'last_name'])
    
    

    result

    
      property json_obj.prop1                                     json_obj.prop2  \
    0    Quaxo      Chevrolet                                      Mercy Streets   
    1  Blogpad        Hyundai                                          Flashback   
    2    Yabox         Nissan  Welcome Mr. Marshall (Bienvenido Mister Marshall)   
    
                          email first_name gender id      ip_address last_name  
    0  mlantaph0@opensource.org       Mead   Male  1  231.126.209.31   Lantaph  
    1  mlantaph0@opensource.org       Mead   Male  1  231.126.209.31   Lantaph  
    2  mlantaph0@opensource.org       Mead   Male  1  231.126.209.31   Lantaph  
    

    More information about json_normalize: https://pandas.pydata.org/docs/reference/api/pandas.json_normalize.html

提交回复
热议问题