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

时间:2016-12-02 09:52:23

标签: python python-3.x computer-vision microsoft-cognitive

我是Python和Microsoft认知服务的新手。 我正在尝试一个计算机视觉API的例子,我试图发布一个图像的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'

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

追踪(最近一次通话):     File" D:/ Users / aa / PycharmProjects / untitled / Demo2 / ComputerVisionAPIDemo",29行in     print(" [Errno {0}] {1}" .format(e.errno,e.strerror))     AttributeError:' TypeError'对象没有属性' errno'

1 个答案:

答案 0 :(得分:1)

身体需要正确地进行分析:

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