Использование 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 если у вас нет каких-либо прямоугольников.

  • Местоположение сохраненных автономных данных для картографических данных
  • Как обнаружить столкновение в pygame?
  • Ошибка в модуле с именем curses
  • Проблема с установкой Python 2.7.8 наряду с 2.7.5 на RHEL 7.2
  • Получить код OAuth в URL-адресе перенаправления, предоставленном как ответ POST
  • Установка Numpy на 64-битной Windows 7 с Python 2.7.3
  • Выполнение Python из php
  • TypeError: super (type, obj) при запуске скрипта pyprocessing в интерактивном режиме
  •  
    Interesting Posts for Van-Lav

    tail -f в python без time.sleep

    Цифровой фильтр 2D-изображений двумя масками

    Невозможно переместить изображение в Pygame

    Cython в Win64 с отчетами TDM-GCC «кодек utf-8» не может декодировать байт 0x83 в позиции 1: недопустимый стартовый байт "

    Как удалить юникод?

    индекс поиска элемента, ближайшего к значению в списке, который не полностью отсортирован

    Аутентификация с помощью открытых ключей и cx_Oracle с использованием Python

    читатель yaml и jinja2

    Получение соответствующего значения columnC при группировке по столбцу A и агрегирование по столбцу B

    Передавать все аргументы функции другой функции

    Можно ли переключить определенный шаг в конвейере sklearn?

    paramiko.exec_command () не выполняет и возвращает «Дополнительные параметры, найденные в CLI»

    Модель limit_choices_to = {'user': user}

    Могу ли я сделать «string содержит X» с процентной точностью в python?

    Быстрый и простой диалог с файлом в Python?

    Python - лучший язык программирования в мире.