首页 文章

在Python 3中使用Microsoft Cognitive Computer Vision API时收到TypeError

提问于
浏览
0

我是Python和Microsoft认知服务的新手 . 我正在尝试一个计算机视觉API的例子,我试图POST一个图像的URL进行分析,以下是我的代码 -

import http.client, urllib.request, urllib.parse, urllib.error, base64

MICROSOFT_CV_SUBSCRIPTION_KEY='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

headers = {
   # Request headers
   'Content-Type': 'application/json',
   'Ocp-Apim-Subscription-Key': MICROSOFT_CV_SUBSCRIPTION_KEY,
}

params = urllib.parse.urlencode({
   'visualFeatures': 'Categories,Adult,Faces,Description,ImageType',
   'details': 'Celebrities',
   'language': 'en',
})

data = {
    'url':'http://img.wennermedia.com/article-leads-vertical-300/1250530894_brad_pitt_290x402.jpg',
}

try:
    conn = http.client.HTTPSConnection('api.projectoxford.ai')
    conn.request("POST", "/vision/v1.0/analyze?%s" % params, data, headers)
    response = conn.getresponse()
    data = response.read()
    print(data)
    conn.close()
except Exception as e:
    print("[Errno {0}] {1}".format(e.errno, e.strerror))

但我每次都得到以下例外 . 有人可以帮忙吗?

TypeError:不可用类型:'slice'第23行,在conn.request(“POST”,“/ vision / v1.0 / analyze?%s”%params,data,headers)中

TypeError:需要类似字节的对象,而不是'str'

在处理上述异常期间,发生了另一个异常:

回溯(最近一次调用最后一次):文件“D:/ Users / aa / PycharmProjects / untitled / Demo2 / ComputerVisionAPIDemo”,第29行,打印(“[Errno {0}] {1}” . 格式(e.errno, e.strerror))AttributeError:'TypeError'对象没有属性'errno'

1 回答

  • 1

    身体需要正确的字符串化:

    conn.request("POST", "/vision/v1.0/analyze?%s" % params, str(data), headers)
    

相关问题