0

I am using the face++ API, I need to get an attribute from the first request(json_resp) to add it in the second one (json_resp2)

import requests

json_resp = requests.post( 'https://api-          us.faceplusplus.com/facepp/v3/detect',
          data  = { 'api_key' : 'api key' ,
          'api_secret' : 'api secret',
           'image_url'     : 'http://www.pick-health.com/wp-content/uploads/2013/08/happy-person.jpg' } )

print("Response : ", json_resp.text)

This request outputs:

Response : {"image_id": "0UqxdZ6b58TaAFxBiujyMA==", "request_id": "1523139597,9f47c376-481b-446f-9fa3-fb49e404437c", "time_used": 327, "faces": [{"face_rectangle": {"width": 126, "top": 130, "left": 261, "height": 126}, "face_token": "2da210ada488fb10b58cdd2cd9eb3801"}]}

I need to access the face_token to pass it to the second request:

json_resp2 = requests.post( 'https://api-us.faceplusplus.com/facepp/v3/face/analyze',
          data  = { 'api_key' : 'api key' ,
          'api_secret' : 'api secret',
           'face_tokens'     : 'json_resp.face_tokens',
           'return_landmark':0,
           'return_attributes':'emotion'} )

print("Response2 : ", json_resp2.text)

how can I do this please ?

1

1 Answer 1

1

To get the text string from the response object, you can use json_resp.text. You can then use the json library to convert this into a dict, and then extract the field you want:

json_resp = requests.post(...) ## Your post request, as written above

node = json.loads(json_resp.text)
face_token = node['faces'][0]['face_token']

Here is the full code (using your snippets above):

import requests
import json


api_key = 'your api key'
api_secret = 'your api secret'

json_resp = requests.post(
    'https://api-us.faceplusplus.com/facepp/v3/detect',
    data = {
        'api_key'    : api_key,
        'api_secret' : api_secret,
        'image_url'  : 'http://www.pick-health.com/wp-content/uploads/2013/08/happy-person.jpg'
    }
)

node = json.loads(json_resp.text)
face_token = node['faces'][0]['face_token']

json_resp2 = requests.post(
    'https://api-us.faceplusplus.com/facepp/v3/face/analyze',
    data  = {
        'api_key'           : api_key,
        'api_secret'        : api_secret,
        'face_tokens'       : face_token,
        'return_landmark'   : 0,
        'return_attributes' : 'emotion'
    }
)

print("Response2 : ", json_resp2.text)

PS: It's a bad idea to post API keys online, since people can run your bill up by using your services.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.