[英]How to extract an attribute from a json response using python
我正在使用face ++ API,我需要從第一個請求(json_resp)獲取屬性以將其添加到第二個請求(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)
該請求輸出:
響應:{“ 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“}]}
我需要訪問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' : 'json_resp.face_tokens',
'return_landmark':0,
'return_attributes':'emotion'} )
print("Response2 : ", json_resp2.text)
請問我該怎么做?
要從響應對象獲取文本字符串,可以使用json_resp.text
。 然后,您可以使用json
庫將其轉換為dict
,然后提取所需的字段:
json_resp = requests.post(...) ## Your post request, as written above
node = json.loads(json_resp.text)
face_token = node['faces'][0]['face_token']
這是完整的代碼(使用上面的代碼段):
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:在線發布API密鑰是一個壞主意,因為人們可以通過使用您的服務來增加您的賬單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.