将Curl命令转换为python

时间:2018-09-21 06:18:13

标签: python python-3.x api curl python-requests

$ 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 :(得分:1)

根据FacePlusPlus的documentation$REPLY应该是文件而不是路径,因此您应该使用以下方式发布文件二进制文件:

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')} ) 的{​​{3}}。