Python imageUri:本地文件的路径

Python imageUri:本地文件的路径,python,google-cloud-vision,Python,Google Cloud Vision,我正在使用python中的requests.post方法访问google vision api(jupyter笔记本) 在imageUri中,我只能指定weburl或bucket uri。我无法指定像“/Users/pi/test.jpg”这样的本地文件名 我得到的答复是: [{'error': {'code': 3, 'message': 'image-annotator::Malformed request.: Unsupported URI protocol specified: /Use

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

在imageUri中,我只能指定weburl或bucket uri。我无法指定像“/Users/pi/test.jpg”这样的本地文件名

我得到的答复是:

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

请帮助

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

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

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'])

P>可选地,您可以考虑使用客户端库;一些信息。

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

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

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'])

P>可选地,您可以考虑使用客户端库;一些信息。

试试
file:///Users/mbp/Pictures/full moon.jpg
感谢您的回复。不幸的是,它无法工作{'error':{'code':3,'message':'image annotator::格式错误的请求。:指定了不支持的URI协议:file:///Users/mbp/Pictures/full moon.jpg'}}试试
file:///Users/mbp/Pictures/full moon.jpg
感谢您的回复。不幸的是,它无法工作{'error':{'code':3,'message':'image annotator::格式错误的请求。:指定了不支持的URI协议:file:///Users/mbp/Pictures/full moon.jpg'}你太棒了!!utf-8编码有一些问题。。。但是我能修好它!!谢谢again@maswadkar你介意分享你遇到的utf-8编码问题吗?我得到的错误肯定是TypeError:b'/9j/4S/+RXhpZg……。='不是JSON可序列化的更改是encoded\u content=base64.b64encode(image\u content.decode('utf-8')你太棒了!!utf-8编码有一些问题。。。但是我能修好它!!谢谢again@maswadkar你介意分享你遇到的utf-8编码问题吗?我得到的错误肯定是TypeError:b'/9j/4S/+RXhpZg……。='不是JSON可序列化的更改是encoded\u content=base64.b64encode(image\u content.decode('utf-8'))