首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >imageUri :本地文件的路径

imageUri :本地文件的路径
EN

Stack Overflow用户
提问于 2017-06-13 11:14:57
回答 1查看 2.3K关注 0票数 0

我正在使用python (jupyter记事本)中的requests.post方法访问google。

在imageUri中,我只能指定weburl或bucket uri。我无法指定本地文件名,比如"/Users/pi/test.jpg“

代码语言:javascript
复制
file_name = '/Users/mbp/Pictures/full moon.jpg'
data = {
  "requests":[
    {
      "image":{
    "source":{
      "imageUri": file_name
    }
  },
  "features":[
    {
      "type":"FACE_DETECTION",
      "maxResults":1
    }
   ]
  }
 ]
}

r = requests.post(url=url,json=data)
x= json.loads(r.text)
print(x['responses'])

我得到的回应是:

代码语言:javascript
复制
[{'error': {'code': 3, 'message': 'image-annotator::Malformed request.: Unsupported URI protocol specified: /Users/mbp/Pictures/full moon.jpg'}}]

请帮帮忙

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-14 15:19:26

对于本地文件,您需要加载文件内容,对其进行编码,并将编码的图像内容放在content键下。有关详细信息,请参阅这里。有关base64编码的信息也链接在该页面上。

您的代码可以按以下方式更新:

代码语言:javascript
复制
import base64

file_name = '/Users/mbp/Pictures/full moon.jpg'
with open(file_name, 'r') as image:
    image_content = image.read()
    encoded_content = base64.b64encode(image_content)

data = {
  "requests":[
    {
      "image":{
      "content": encoded_content
    },
  "features":[
    {
      "type":"FACE_DETECTION",
      "maxResults":1
    }
   ]
  }
 ]
}

r = requests.post(url=url,json=data)
x = json.loads(r.text)
print(x['responses'])

或者,您可以考虑使用客户端库;一些信息这里

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44519968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档