0

I'm doing an API test. So I have a some response with a json. And I want to get all "firstName" from it. For this goal I'm using a jsonpath_rw tool. But during parsing I get a lot of extra information that I don't need.

Here is my response:

"_embedded": {
"customer": [
{
"firstName": "Eve",
"lastName": "Berger",
"username": "Eve_Berger",
"id": "57a98d98e4b00679b4a830af",
"_links": {
"addresses": {
"href": "http://user/customers/57a98d98e4b00679b4a830af/addresses"
},
"cards": {
"href": "http://user/customers/57a98d98e4b00679b4a830af/cards"
},
"customer": {
"href": "http://user/customers/57a98d98e4b00679b4a830af"
},
"self": {
"href": "http://user/customers/57a98d98e4b00679b4a830af"
}
}
},
{
"firstName": "User",
"lastName": "Name",
"username": "user",
"id": "57a98d98e4b00679b4a830b2",
"_links": {
"addresses": {
"href": "http://user/customers/57a98d98e4b00679b4a830b2/addresses"
},
"cards": {
"href": "http://user/customers/57a98d98e4b00679b4a830b2/cards"
},
"customer": {
"href": "http://user/customers/57a98d98e4b00679b4a830b2"
},
"self": {
"href": "http://user/customers/57a98d98e4b00679b4a830b2"
}
}
},
{
"firstName": "TestName",
"lastName": "TestSurname",
"username": "test12",
"id": "5cf7f4bcee11cb0001ecdb07",
"_links": {
"addresses": {
"href": "http://user/customers/5cf7f4bcee11cb0001ecdb07/addresses"
},
"cards": {
"href": "http://user/customers/5cf7f4bcee11cb0001ecdb07/cards"
},
"customer": {
"href": "http://user/customers/5cf7f4bcee11cb0001ecdb07"
},
"self": {
"href": "http://user/customers/5cf7f4bcee11cb0001ecdb07"
}
}
}
]
}
}

I expect to parse all "firstName" values and to see only for instance a such result: ["Eve", "User", "TestName"] And when I'm trying it here (http://jsonpath.herokuapp.com) with my json and using the path "$..firstName" it works fine. But in my Python code it looks not ok and has such a big response with a lot of extra data. Can someone please help me what I have to fix?

Because now my response after parsing looks not the same as I expect. I only want to see these three names ("Eve", "User", "TestName"), but here it is what I have now:

  DatumInContext(value='Eve',
  path=Fields('firstName'),
  context=DatumInContext(value={
    'firstName': 'Eve',
    'lastName': 'Berger',
    'username': 'Eve_Berger',
    'id': '57a98d98e4b00679b4a830af',
    '_links': {
      'addresses': {
        'href': 'http://user/customers/57a98d98e4b00679b4a830af/addresses'
      },
      'cards': {
        'href': 'http://user/customers/57a98d98e4b00679b4a830af/cards'
      },
      'customer': {
        'href': 'http://user/customers/57a98d98e4b00679b4a830af'
      },
      'self': {
        'href': 'http://user/customers/57a98d98e4b00679b4a830af'
      }
    }
  },
  path=<jsonpath_rw.jsonpath.Indexobjectat0x10620a5f8>,
  context=DatumInContext(value=[
    {
      'firstName': 'Eve',
      'lastName': 'Berger',
      'username': 'Eve_Berger',
      'id': '57a98d98e4b00679b4a830af',
      '_links': {
        'addresses': {
          'href': 'http://user/customers/57a98d98e4b00679b4a830af/addresses'
        },
        'cards': {
          'href': 'http://user/customers/57a98d98e4b00679b4a830af/cards'
        },
        'customer': {
          'href': 'http://user/customers/57a98d98e4b00679b4a830af'
        },
        'self': {
          'href': 'http://user/customers/57a98d98e4b00679b4a830af'
        }
      }
    },
    {
      'firstName': 'User',
      'lastName': 'Name',
      'username': 'user',
      'id': '57a98d98e4b00679b4a830b2',
      '_links': {
        'addresses': {
          'href': 'http://user/customers/57a98d98e4b00679b4a830b2/addresses'
        },
        'cards': {
          'href': 'http://user/customers/57a98d98e4b00679b4a830b2/cards'
        },
        'customer': {
          'href': 'http://user/customers/57a98d98e4b00679b4a830b2'
        },
        'self': {
          'href': 'http://user/customers/57a98d98e4b00679b4a830b2'
        }
      }
    },
    {
      'firstName': 'TestName',
      'lastName': 'TestSurname',
      'username': 'test12',
      'id': '5cf7f4bcee11cb0001ecdb07',
      '_links': {
        'addresses': {
          'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07/addresses'
        },
        'cards': {
          'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07/cards'
        },
        'customer': {
          'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07'
        },
        'self': {
          'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07'
        }
      }
    }
  ],
  path=Fields('customer'),
  context=DatumInContext(value={
    'customer': [
      {
        'firstName': 'Eve',
        'lastName': 'Berger',
        'username': 'Eve_Berger',
        'id': '57a98d98e4b00679b4a830af',
        '_links': {
          'addresses': {
            'href': 'http://user/customers/57a98d98e4b00679b4a830af/addresses'
          },
          'cards': {
            'href': 'http://user/customers/57a98d98e4b00679b4a830af/cards'
          },
          'customer': {
            'href': 'http://user/customers/57a98d98e4b00679b4a830af'
          },
          'self': {
            'href': 'http://user/customers/57a98d98e4b00679b4a830af'
          }
        }
      },
      {
        'firstName': 'User',
        'lastName': 'Name',
        'username': 'user',
        'id': '57a98d98e4b00679b4a830b2',
        '_links': {
          'addresses': {
            'href': 'http://user/customers/57a98d98e4b00679b4a830b2/addresses'
          },
          'cards': {
            'href': 'http://user/customers/57a98d98e4b00679b4a830b2/cards'
          },
          'customer': {
            'href': 'http://user/customers/57a98d98e4b00679b4a830b2'
          },
          'self': {
            'href': 'http://user/customers/57a98d98e4b00679b4a830b2'
          }
        }
      },
      {
        'firstName': 'TestName',
        'lastName': 'TestSurname',
        'username': 'test12',
        'id': '5cf7f4bcee11cb0001ecdb07',
        '_links': {
          'addresses': {
            'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07/addresses'
          },
          'cards': {
            'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07/cards'
          },
          'customer': {
            'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07'
          },
          'self': {
            'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07'
          }
        }
      }
    ]
  },
  path=Fields('_embedded'),
  context=DatumInContext(value={
    '_embedded': {
      'customer': [
        {
          'firstName': 'Eve',
          'lastName': 'Berger',
          'username': 'Eve_Berger',
          'id': '57a98d98e4b00679b4a830af',
          '_links': {
            'addresses': {
              'href': 'http://user/customers/57a98d98e4b00679b4a830af/addresses'
            },
            'cards': {
              'href': 'http://user/customers/57a98d98e4b00679b4a830af/cards'
            },
            'customer': {
              'href': 'http://user/customers/57a98d98e4b00679b4a830af'
            },
            'self': {
              'href': 'http://user/customers/57a98d98e4b00679b4a830af'
            }
          }
        },
        {
          'firstName': 'User',
          'lastName': 'Name',
          'username': 'user',
          'id': '57a98d98e4b00679b4a830b2',
          '_links': {
            'addresses': {
              'href': 'http://user/customers/57a98d98e4b00679b4a830b2/addresses'
            },
            'cards': {
              'href': 'http://user/customers/57a98d98e4b00679b4a830b2/cards'
            },
            'customer': {
              'href': 'http://user/customers/57a98d98e4b00679b4a830b2'
            },
            'self': {
              'href': 'http://user/customers/57a98d98e4b00679b4a830b2'
            }
          }
        },
        {
          'firstName': 'TestName',
          'lastName': 'TestSurname',
          'username': 'test12',
          'id': '5cf7f4bcee11cb0001ecdb07',
          '_links': {
            'addresses': {
              'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07/addresses'
            },
            'cards': {
              'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07/cards'
            },
            'customer': {
              'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07'
            },
            'self': {
              'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07'
            }
          }
        }
      ]
    }
  },
  path=Root(),
  context=None))))),
  DatumInContext(value='User',
  path=Fields('firstName'),
  context=DatumInContext(value={
    'firstName': 'User',
    'lastName': 'Name',
    'username': 'user',
    'id': '57a98d98e4b00679b4a830b2',
    '_links': {
      'addresses': {
        'href': 'http://user/customers/57a98d98e4b00679b4a830b2/addresses'
      },
      'cards': {
        'href': 'http://user/customers/57a98d98e4b00679b4a830b2/cards'
      },
      'customer': {
        'href': 'http://user/customers/57a98d98e4b00679b4a830b2'
      },
      'self': {
        'href': 'http://user/customers/57a98d98e4b00679b4a830b2'
      }
    }
  },
  path=<jsonpath_rw.jsonpath.Indexobjectat0x106245908>,
  context=DatumInContext(value=[
    {
      'firstName': 'Eve',
      'lastName': 'Berger',
      'username': 'Eve_Berger',
      'id': '57a98d98e4b00679b4a830af',
      '_links': {
        'addresses': {
          'href': 'http://user/customers/57a98d98e4b00679b4a830af/addresses'
        },
        'cards': {
          'href': 'http://user/customers/57a98d98e4b00679b4a830af/cards'
        },
        'customer': {
          'href': 'http://user/customers/57a98d98e4b00679b4a830af'
        },
        'self': {
          'href': 'http://user/customers/57a98d98e4b00679b4a830af'
        }
      }
    },
    {
      'firstName': 'User',
      'lastName': 'Name',
      'username': 'user',
      'id': '57a98d98e4b00679b4a830b2',
      '_links': {
        'addresses': {
          'href': 'http://user/customers/57a98d98e4b00679b4a830b2/addresses'
        },
        'cards': {
          'href': 'http://user/customers/57a98d98e4b00679b4a830b2/cards'
        },
        'customer': {
          'href': 'http://user/customers/57a98d98e4b00679b4a830b2'
        },
        'self': {
          'href': 'http://user/customers/57a98d98e4b00679b4a830b2'
        }
      }
    },
    {
      'firstName': 'TestName',
      'lastName': 'TestSurname',
      'username': 'test12',
      'id': '5cf7f4bcee11cb0001ecdb07',
      '_links': {
        'addresses': {
          'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07/addresses'
        },
        'cards': {
          'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07/cards'
        },
        'customer': {
          'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07'
        },
        'self': {
          'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07'
        }
      }
    }
  ],
  path=Fields('customer'),
  context=DatumInContext(value={
    'customer': [
      {
        'firstName': 'Eve',
        'lastName': 'Berger',
        'username': 'Eve_Berger',
        'id': '57a98d98e4b00679b4a830af',
        '_links': {
          'addresses': {
            'href': 'http://user/customers/57a98d98e4b00679b4a830af/addresses'
          },
          'cards': {
            'href': 'http://user/customers/57a98d98e4b00679b4a830af/cards'
          },
          'customer': {
            'href': 'http://user/customers/57a98d98e4b00679b4a830af'
          },
          'self': {
            'href': 'http://user/customers/57a98d98e4b00679b4a830af'
          }
        }
      },
      {
        'firstName': 'User',
        'lastName': 'Name',
        'username': 'user',
        'id': '57a98d98e4b00679b4a830b2',
        '_links': {
          'addresses': {
            'href': 'http://user/customers/57a98d98e4b00679b4a830b2/addresses'
          },
          'cards': {
            'href': 'http://user/customers/57a98d98e4b00679b4a830b2/cards'
          },
          'customer': {
            'href': 'http://user/customers/57a98d98e4b00679b4a830b2'
          },
          'self': {
            'href': 'http://user/customers/57a98d98e4b00679b4a830b2'
          }
        }
      },
      {
        'firstName': 'TestName',
        'lastName': 'TestSurname',
        'username': 'test12',
        'id': '5cf7f4bcee11cb0001ecdb07',
        '_links': {
          'addresses': {
            'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07/addresses'
          },
          'cards': {
            'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07/cards'
          },
          'customer': {
            'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07'
          },
          'self': {
            'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07'
          }
        }
      }
    ]
  },
  path=Fields('_embedded'),
  context=DatumInContext(value={
    '_embedded': {
      'customer': [
        {
          'firstName': 'Eve',
          'lastName': 'Berger',
          'username': 'Eve_Berger',
          'id': '57a98d98e4b00679b4a830af',
          '_links': {
            'addresses': {
              'href': 'http://user/customers/57a98d98e4b00679b4a830af/addresses'
            },
            'cards': {
              'href': 'http://user/customers/57a98d98e4b00679b4a830af/cards'
            },
            'customer': {
              'href': 'http://user/customers/57a98d98e4b00679b4a830af'
            },
            'self': {
              'href': 'http://user/customers/57a98d98e4b00679b4a830af'
            }
          }
        },
        {
          'firstName': 'User',
          'lastName': 'Name',
          'username': 'user',
          'id': '57a98d98e4b00679b4a830b2',
          '_links': {
            'addresses': {
              'href': 'http://user/customers/57a98d98e4b00679b4a830b2/addresses'
            },
            'cards': {
              'href': 'http://user/customers/57a98d98e4b00679b4a830b2/cards'
            },
            'customer': {
              'href': 'http://user/customers/57a98d98e4b00679b4a830b2'
            },
            'self': {
              'href': 'http://user/customers/57a98d98e4b00679b4a830b2'
            }
          }
        },
        {
          'firstName': 'TestName',
          'lastName': 'TestSurname',
          'username': 'test12',
          'id': '5cf7f4bcee11cb0001ecdb07',
          '_links': {
            'addresses': {
              'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07/addresses'
            },
            'cards': {
              'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07/cards'
            },
            'customer': {
              'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07'
            },
            'self': {
              'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07'
            }
          }
        }
      ]
    }
  },
  path=Root(),
  context=None))))),
  DatumInContext(value='TestName',
  path=Fields('firstName'),
  context=DatumInContext(value={
    'firstName': 'TestName',
    'lastName': 'TestSurname',
    'username': 'test12',
    'id': '5cf7f4bcee11cb0001ecdb07',
    '_links': {
      'addresses': {
        'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07/addresses'
      },
      'cards': {
        'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07/cards'
      },
      'customer': {
        'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07'
      },
      'self': {
        'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07'
      }
    }
  },
  path=<jsonpath_rw.jsonpath.Indexobjectat0x106245cf8>,
  context=DatumInContext(value=[
    {
      'firstName': 'Eve',
      'lastName': 'Berger',
      'username': 'Eve_Berger',
      'id': '57a98d98e4b00679b4a830af',
      '_links': {
        'addresses': {
          'href': 'http://user/customers/57a98d98e4b00679b4a830af/addresses'
        },
        'cards': {
          'href': 'http://user/customers/57a98d98e4b00679b4a830af/cards'
        },
        'customer': {
          'href': 'http://user/customers/57a98d98e4b00679b4a830af'
        },
        'self': {
          'href': 'http://user/customers/57a98d98e4b00679b4a830af'
        }
      }
    },
    {
      'firstName': 'User',
      'lastName': 'Name',
      'username': 'user',
      'id': '57a98d98e4b00679b4a830b2',
      '_links': {
        'addresses': {
          'href': 'http://user/customers/57a98d98e4b00679b4a830b2/addresses'
        },
        'cards': {
          'href': 'http://user/customers/57a98d98e4b00679b4a830b2/cards'
        },
        'customer': {
          'href': 'http://user/customers/57a98d98e4b00679b4a830b2'
        },
        'self': {
          'href': 'http://user/customers/57a98d98e4b00679b4a830b2'
        }
      }
    },
    {
      'firstName': 'TestName',
      'lastName': 'TestSurname',
      'username': 'test12',
      'id': '5cf7f4bcee11cb0001ecdb07',
      '_links': {
        'addresses': {
          'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07/addresses'
        },
        'cards': {
          'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07/cards'
        },
        'customer': {
          'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07'
        },
        'self': {
          'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07'
        }
      }
    }
  ],
  path=Fields('customer'),
  context=DatumInContext(value={
    'customer': [
      {
        'firstName': 'Eve',
        'lastName': 'Berger',
        'username': 'Eve_Berger',
        'id': '57a98d98e4b00679b4a830af',
        '_links': {
          'addresses': {
            'href': 'http://user/customers/57a98d98e4b00679b4a830af/addresses'
          },
          'cards': {
            'href': 'http://user/customers/57a98d98e4b00679b4a830af/cards'
          },
          'customer': {
            'href': 'http://user/customers/57a98d98e4b00679b4a830af'
          },
          'self': {
            'href': 'http://user/customers/57a98d98e4b00679b4a830af'
          }
        }
      },
      {
        'firstName': 'User',
        'lastName': 'Name',
        'username': 'user',
        'id': '57a98d98e4b00679b4a830b2',
        '_links': {
          'addresses': {
            'href': 'http://user/customers/57a98d98e4b00679b4a830b2/addresses'
          },
          'cards': {
            'href': 'http://user/customers/57a98d98e4b00679b4a830b2/cards'
          },
          'customer': {
            'href': 'http://user/customers/57a98d98e4b00679b4a830b2'
          },
          'self': {
            'href': 'http://user/customers/57a98d98e4b00679b4a830b2'
          }
        }
      },
      {
        'firstName': 'TestName',
        'lastName': 'TestSurname',
        'username': 'test12',
        'id': '5cf7f4bcee11cb0001ecdb07',
        '_links': {
          'addresses': {
            'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07/addresses'
          },
          'cards': {
            'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07/cards'
          },
          'customer': {
            'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07'
          },
          'self': {
            'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07'
          }
        }
      }
    ]
  },
  path=Fields('_embedded'),
  context=DatumInContext(value={
    '_embedded': {
      'customer': [
        {
          'firstName': 'Eve',
          'lastName': 'Berger',
          'username': 'Eve_Berger',
          'id': '57a98d98e4b00679b4a830af',
          '_links': {
            'addresses': {
              'href': 'http://user/customers/57a98d98e4b00679b4a830af/addresses'
            },
            'cards': {
              'href': 'http://user/customers/57a98d98e4b00679b4a830af/cards'
            },
            'customer': {
              'href': 'http://user/customers/57a98d98e4b00679b4a830af'
            },
            'self': {
              'href': 'http://user/customers/57a98d98e4b00679b4a830af'
            }
          }
        },
        {
          'firstName': 'User',
          'lastName': 'Name',
          'username': 'user',
          'id': '57a98d98e4b00679b4a830b2',
          '_links': {
            'addresses': {
              'href': 'http://user/customers/57a98d98e4b00679b4a830b2/addresses'
            },
            'cards': {
              'href': 'http://user/customers/57a98d98e4b00679b4a830b2/cards'
            },
            'customer': {
              'href': 'http://user/customers/57a98d98e4b00679b4a830b2'
            },
            'self': {
              'href': 'http://user/customers/57a98d98e4b00679b4a830b2'
            }
          }
        },
        {
          'firstName': 'TestName',
          'lastName': 'TestSurname',
          'username': 'test12',
          'id': '5cf7f4bcee11cb0001ecdb07',
          '_links': {
            'addresses': {
              'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07/addresses'
            },
            'cards': {
              'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07/cards'
            },
            'customer': {
              'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07'
            },
            'self': {
              'href': 'http://user/customers/5cf7f4bcee11cb0001ecdb07'
            }
          }
        }
      ]
    }
  },
  path=Root(),
  context=None)))))
]

Here is my Python code:

from jsonpath_rw import parse

def match(self, response):
    json = response.json()
    value = parse("$..firstName").find(json)
    print(json)
    print(value)
    print(len(value))
Kevin Martins
  • 590
  • 7
  • 20
Dan
  • 67
  • 1
  • 7

1 Answers1

0

value is a list containing all objects found. Every item in the list has a value with the result, if nothing is found than the value is empty.

print([x.value for x in found])

Result:

['Eve', 'User', 'TestName']

Hope this helps.

Frans
  • 799
  • 6
  • 7