使用请求错误400的Microsoft Emotion API

时间:2017-03-11 09:20:47

标签: python azure

我使用的是使用python + requests的Microsoft Emotion API

使用以下代码我总是收到400错误 -

  

“表示JSON解析错误,无法正确解析faceRectangles,或者计数超过64,或者无法识别内容类型。”

import requests
n = int(raw_input())
url = "https://westus.api.cognitive.microsoft.com/emotion/v1.0/recognize"
headers = {"Content-Type": "application/json", "Ocp-Apim-Subscription-Key": "xxxxxxxxxxxxxxxxxxxxxxxx"}
while n>0:
    str = raw_input()
    body = '''{ "url": "''' + str + '''" }'''
    r = requests.post(url, data = body,headers = headers)
    print(r.status_code)
    if r.status_code == 200:    
        print(r.content)
    n = n-1

和输入

1
http://i.imgur.com/ytsbJBy.jpg

1 个答案:

答案 0 :(得分:0)

我尝试重现您的问题,但因为您的代码在我的环境中正常运行而失败。我本地的requests版本为2.13.0。请通过Postman手动调用Emotion API,以确保不是由Azure Cognitive Service引起的问题,并通过命令requests检查pip freeze版本是否旧版。

与此同时,我建议重写下面的代码body = '''{ "url": "''' + str + '''" }''',以便更加人性化。

body = "{'url': '%s'}" % str

body = "{{'url': '{0}'}}".format(str)

如有任何疑问或更新,请随时告诉我们。