2017-08-23 16 views
1

下面是我从本地机器上传kairos文件的代码。在kairos上传本地图像python

from urllib2 import Request, urlopen 

values_enroll = """ 
    { 
    "image": "/home/neel/project/test5.jpg", 
    "subject_id": "2", 
    "gallery_name": "MyGallery" 
    } 
""" 

headers_enroll = { 
    'Content-Type': 'application/json', 
    'app_id': '2dxxxx79', 
    'app_key': '08aa31ebdxxxxxxxxxxaa6f6c87f4ea8' 
} 

request_enroll = Request('https://api.kairos.com/enroll', 
data=values_enroll, headers=headers_enroll) 
response_body_enroll = urlopen(request_enroll).read() 
print response_body_enroll 

当我运行这段代码我得到一个错误:

"{"Errors":[{"ErrCode":5000,"Message":"an invalid image was sent must be jpg or png format"}]}"

我下面这个文档:http://docs.kairosv1.apiary.io/#reference/face-recognition/enroll/post

现在,我不想从可公开访问的URL上传图片,而想从本地机器上传图片,并且在从公开访问的URL上传图片时工作正常。

我也试图给出两种解决方案:在这个Error while trying to upload file using kairos ,也解决方案:http://www.projsolution.com/a107-6007-python

回答

1

最近我发现解决方案(它的工作对我来说):

files = {"image": ("test5.jpg",open("/home/neel/project/test5.jpg","rb"))} 

values_enrol = """ 
{ 
    "subject_id": "2", 
    "gallery_name": "MyGallery" 
} 
""" 
res = requests.post("https://api.kairos.com/enroll", files=files, data=values_enroll, headers=headers) 

,如果你删除的内容,它将正常工作 - 类型

+0

它适用于我也 –