Python AZ 翻译请求未被授权,因为凭据丢失或无效

Python AZ translate The request is not authorized because credentials are missing or invalid

我正在使用 Python 3.8.3 并尝试使用 Azure Translation。基于 (https://docs.microsoft.com/nl-nl/azure/cognitive-services/Translator/quickstart-translate?pivots=programming-language-python) 的示例,我尝试为自己重新创建示例并最小化代码。

我创建了一个 Azure 资源(翻译)并在代码中复制了 keyendpoint。但是当我 运行 代码时,出现以下错误:

"code": 401000,
"message": "The request is not authorized because credentials are missing or invalid."

谁能解释一下我做错了什么以及如何解决这个问题!

我使用这个代码:

import os, requests, uuid, json

path = '/translate?api-version=3.0'
params = '&to=de&to=it'
constructed_url = "https://api.cognitive.microsofttranslator.com" + path + params

headers = {
    'Ocp-Apim-Subscription-Key': 'xxxxxxxxxxxx',
    'Content-type': 'application/json',
    'X-ClientTraceId': str(uuid.uuid4())
}

# You can pass more than one object in body.
body = [{
    'text' : 'Hello World!'
}]
request = requests.post(constructed_url, headers=headers, json=body)
response = request.json()

print(json.dumps(response, sort_keys=True, indent=4, separators=(',', ': ')))

非常感谢 埃里克

根据此 doc,因为您正在使用多项服务。必须在您的请求中包含 2 身份验证 headers。

Ocp-Apim-Subscription-Key   The value is the Azure secret key for your multi-service resource.

Ocp-Apim-Subscription-Region    The value is the region of the multi-service resource.

这里的位置是指定的订阅区域。

正在查看您的屏幕截图。该地区似乎是 - westeurope

已针对您的用例更新 Headers:

headers = {
    'Ocp-Apim-Subscription-Key': 'xxxxxxxxxxxx',
    'Ocp-Apim-Subscription-Region' : 'westeurope',
    'Content-type': 'application/json',
    'X-ClientTraceId': str(uuid.uuid4())
}