Преобразование команды Curl в python - PullRequest
0 голосов
/ 21 сентября 2018
$ curl -X POST "https://api- 
us.faceplusplus.com/facepp/v3/detect" -F 
"api_key=<api key>" \
-F "api_secret<api secret>" \
-F "image_url=<顔の入った写真のURL>" \
-F "return_landmark=1"

Здравствуйте, я пытаюсь написать эквивалентный код запросов Python для вышеупомянутого, но продолжаю получать ошибки.

import requests
import json

API_KEY = "--------------"
API_SECRET = "-----------"
image_path="/Users/dukeglacia/Downloads/test_images2/eo.jpg"
vision_base_url="https://api-us.faceplusplus.com/facepp/v3/detect"

response = requests.post(
    vision_base_url,
    {
        'api_key': API_KEY,
        'api_secret': API_SECRET,
        # 'image_url': img_url,
        'image_file': image_path,
        'return_landmark': 1,
        'return_attributes': 'headpose,eyestatus,emotion,ethnicity,beauty,facequality,mouthstatus,eyegaze,gender,age,smiling'

    }
)

analysis = response.json()
print (analysis)

Моя ошибка говорит о том, что аргументы image_file не найдены.Но, как показано в коде ниже, я включил аргументы.

1 Ответ

0 голосов
/ 21 сентября 2018

Согласно документации FacePlusPlus , image_file должен быть файлом, а не путем, поэтому вы должны отправить файл в двоичном виде с:

response = requests.post(
    vision_base_url,
    {
        'api_key': API_KEY,
        'api_secret': API_SECRET,
        'return_landmark': 1,
        'return_attributes': 'headpose,eyestatus,emotion,ethnicity,beauty,facequality,mouthstatus,eyegaze,gender,age,smiling'

    },
    files={'image_file': open(image_path, 'rb')}
)

Пожалуйста, обратитесь к requests документация для более подробной информации о том, как вы можете загрузить файл.

...