我详细阅读了一些东西。并立即编写另一个代码。除了一个错误,一切都很好。我已经将config.py和util.py放在类似的文件夹中,并在config.py中设置了我的'key'和'url'。我不明白为什么会出现此错误?
回溯(最近通话最近): 在第40行中输入文件“ a_similar1.py” find_likes(face_id,face_list_id,max_candidates_return,mode) 在find_similars中,文件“ a_similar1.py”,第37行 返回util.request('POST',url,json = jsonb) 请求中的文件“ /home/afshan/Microsoft_Azure/phase_1/Cognitive-Face-Python/cognitive_face/util.py”,第106行 error_msg.get('消息')) util.CognitiveFaceException:调用Cognitive Face API时出错: 状态码:404 代码:ResourceNotFound 消息:找不到请求的资源。
util.py的行是:
# Setup the headers with default Content-Type and Subscription Key.
headers = headers or {}
if 'Content-Type' not in headers:
headers['Content-Type'] = 'application/json'
#headers['Ocp-Apim-Subscription-Key'] = Key.get()
headers['Ocp-Apim-Subscription-Key'] = 'd7c5495c64a44bc692761cd7c45ad56e'
response = requests.request(
method,
url,
params=params,
data=data,
json=json,
headers=headers)
代码是:
import util
import uuid
import unittest
import cognitive_face as CF
face_id = None
face_list_id = None
max_candidates_return = None
mode = None
CF.Key.set('d7c5495c64a44bc692761cd7c45ad56e')
CF.BaseUrl.set('https://southeastasia.api.cognitive.microsoft.com/face/v1.0/')
def find_similars(face_id, face_list_id, max_candidates_return, mode):
#face_id='5a27b8c3-f340-4559-baa3-a8dc770c5078',
face_id='bd930ddb-7f1d-4693-875d-3126a678dd68',
face_list_id='ef799940-1305-11e9-bec1-080027226cb7',
max_candidates_return=100,
mode='matchPerson'
url = 'https://southeastasia.api.cognitive.microsoft.com/face/v1.0/'
jsonb = {
'faceId': face_id,
'faceListId': face_list_id,
'maxNumOfCandidatesReturned': max_candidates_return,
'mode': mode,
}
return util.request('POST', url, json=jsonb)
find_similars(face_id, face_list_id, max_candidates_return, mode)
答案 0 :(得分:0)
您正在传递以下内容作为有效负载:
payload = {'faceId': '5a27b8c3-f340-4559-baa3-a8dc770c5078', 'faceIds': 'ef799940-1305-11e9-bec1-080027226cb7', 'maxNumOfCandidatesReturned': 20, 'mode': "matchPerson"}
文档说明here:
faceIds(数组):候选faceIds的数组。他们都是 由Face创建-检测并且faceIds将在24小时后过期 检测电话。 faceId的数量限制为1000。 参数faceListId,largeFaceListId和faceIds不应为 同时提供
这里您没有在faceIds
中传递数组,它应该类似于以下内容:
payload = {'faceId': '5a27b8c3-f340-4559-baa3-a8dc770c5078', 'faceIds': ['ef799940-1305-11e9-bec1-080027226cb7'], 'maxNumOfCandidatesReturned': 20, 'mode': "matchPerson"}
您添加了以下错误:
util.CognitiveFaceException: Error when calling Cognitive Face API: status_code: 404 code: ResourceNotFound message: The requested resource was not found.
您遇到的错误是404,因此调用的网址错误。您应该呼叫https://[location].api.cognitive.microsoft.com/face/v1.0/findsimilars
,这里您仅呼叫根https://[location].api.cognitive.microsoft.com/face/v1.0
。修正网址