我遇到了牛津计划项目并对它真正感兴趣并使用了它的API,特别是那种情感。 Microsoft提供示例代码
########### Python 2.7 #############
import httplib, urllib, base64
headers = {
# Request headers
'Content-Type': 'application/json',
'Ocp-Apim-Subscription-Key': 'add key',
}
params = urllib.urlencode({
# Request parameters
'faceRectangles': '{string}',
})
try:
conn = httplib.HTTPSConnection('api.projectoxford.ai')
conn.request("POST", "/emotion/v1.0/recognize&%s" % params, "{body}", headers)
response = conn.getresponse()
data = response.read()
print(data)
conn.close()
except Exception as e:
print("[Errno {0}] {1}".format(e.errno, e.strerror))
这不包含请求正文。我认为我需要添加的是
body = {
'url': 'url here',
}
并更改
conn.request("POST", "/emotion/v1.0/recognize&%s" % params, "{body}",headers)
到
conn.request("POST", "/emotion/v1.0/recognize&%s" % params, body, headers)
然而,这是行不通的。我跑的时候会得到这个
Traceback (most recent call last):
File "C:/Users/User/Desktop/python/emotion.py", line 29, in <module>
print("[Errno {0}] {1}".format(e.errno, e.strerror))
AttributeError: 'exceptions.TypeError' object has no attribute 'errno'
非常感谢任何帮助!
答案 0 :(得分:3)
您需要将str(body)
传递给请求。
此外,如果您没有任何脸部矩形,请务必不要包含params
。
答案 1 :(得分:0)
以下适用于我(Python 2.7),也基于MSDN提供的示例代码。您不需要指定faceRectangles(除非您想要,因为它们已被检测到,以节省计算时间)。
std::vector<Base>