在 kairos 上传本地图片 python

Upload local images in kairos python

下面是我从本地机器上传文件到 kairos 的代码。

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

最近我找到了一个解决方案(对我有用):

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)

p/s: 删除Content-Type就可以了