Использование API-интерфейса Project Oxford's Emotion

Я наткнулся на Project Oxford и очень заинтересовался им и использовал его 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' 

Любая помощь высоко ценится!

2 Solutions collect form web for “Использование API-интерфейса Project Oxford's Emotion”

Следующие работы для меня (Python 2.7), также основаны на примере кода, предоставленного MSDN. Вам не нужно указывать faceRectangles (если вы не хотите, потому что они уже были обнаружены, чтобы сохранить время вычисления).

 import httplib, urllib, base64 # Image to analyse (body of the request) body = '{\'URL\': \'https://<path to image>.jpg\'}' # API request for Emotion Detection headers = { 'Content-type': 'application/json', } params = urllib.urlencode({ 'subscription-key': '', # Enter EMOTION API key #'faceRectangles': '', }) try: conn = httplib.HTTPSConnection('api.projectoxford.ai') conn.request("POST", "/emotion/v1.0/recognize?%s" % params, body , headers) response = conn.getresponse() print("Send request") data = response.read() print(data) conn.close() except Exception as e: print("[Errno {0}] {1}".format(e.errno, e.strerror)) 

Вам необходимо передать str(body) в запрос.

Кроме того, не забудьте включить params если у вас нет каких-либо прямоугольников.

  • `id` в Python 2.7,` is`, идентификация объекта и определяемые пользователем методы
  • Windows 7 64bit - Python 2.7.3 64bit установлен - проблемы с Pygame
  • Как я могу документировать элементы в определенных разделах с помощью Sphinx?
  • Python2.7 Ошибка соединителя MySQL в LOAD DATA LOCAL INFILE
  • Ubuntu с запуском `pip install` дает ошибку 'Невозможно построить следующие необходимые пакеты: * freetype'
  • cc1: ошибка: непризнанная опция командной строки «-Wno-null-conversion» при установке python-mysql на mac 10.7.5
  • конвертировать xldate в python datetime
  • re.findall не возвращает полное совпадение?
  • Python - лучший язык программирования в мире.