[英]Boto3 InvalidParameterException
我有一些代碼可以調用 AWS 的 Rekognition 服務。 有時它會拋出這個異常:
An error occurred (InvalidParameterException) when calling the DetectLabels operation: Request has Invalid Parameters
但是,我在文檔或代碼中的任何地方都找不到InvalidParameterException
,因此我無法為發生這種情況的時間編寫特定的處理程序。 有誰知道異常所在的庫模塊?
如果您在調用search_faces_by_image
看到此異常,則可能表示您提供的圖像中沒有可檢測到的人臉。 您可以在API_SearchFacesByImage 中查看可能的異常列表。
要處理此異常,您可以編寫如下代碼:
import boto3
rek = boto3.client('rekognition')
def lookup_faces(image, collection_id):
try:
faces = rek.search_faces_by_image(
CollectionId=collection_id,
Image=image,
FaceMatchThreshold=95
)
logger.info('faces detected: {}'.format(faces))
return faces
except rek.exceptions.InvalidParameterException as e:
logger.debug('no faces detected')
return None
我在boto/cognito/identity/exceptions.py
找到了它:
from boto.exception import BotoServerError
class InvalidParameterException(BotoServerError):
pass
這是 AWS 的一個誤導性錯誤,當源圖像不包含任何可檢測的人臉時,就會出現此錯誤。 確保您的源圖像具有可檢測的面部。
在帶有 boto3 的 Python3 中,您可以執行以下操作:
from botocore.exceptions import ClientError
catch ClientError as e:
如果您使用 boto3,jarmod 的答案應該很完美。
要更明確地回答有關InvalidParameterException
所在位置的問題(在boto3
):可以通過boto3
rekognition 客戶端的類實例boto3
它:
import boto3
client = boto3.client('rekognition')
現在,可以通過client.exceptions.InvalidParameterException
訪問異常(有關特定示例,請參閱 jarmod 的答案)。
Stéphane Bruckert 建議使用從boto
導入的建議對我不起作用,因為使用此導入的特定處理程序似乎沒有捕獲異常(但我沒有對其進行廣泛測試)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.