dynamodb rekognition.search_faces_by_image 函数中的 Where 条件

Where condition in dynamodb rekognition.search_faces_by_image function

您好,我正在通过这样的代码获取数据库数据

response = rekognition.search_faces_by_image(
                        CollectionId='athlete_collection',
                        Image={'Bytes': image_crop_binary}
                    )

我在 athlete_collection 中有一个名为 event 的列,所以我想在 event = 'newevent'

中设置一个只获取数据的条件

这里你在概念上错了,因为你试图过滤 athlete_collection 这只是一个 Rekognition 集合 其中仅包含存储的人脸的面部特征数据和与该人脸对应的人脸 ID,然后您可以使用这些人脸 ID 检索相应的数据,如 姓名、地址等 当且仅当如果您在为集合中的这些面孔编制索引时将此类详细信息存储在数据库中,如果在您的用例中 事件名称 存储在数据库中,那么您必须在从相应的数据库检索结果时过滤数据从 search_faces_by_image API

获得的结果

您可以按照以下示例执行此操作:

response = rekognition.search_faces_by_image(
    CollectionId='collection_name',
    Image={'Bytes':image_crop_binary}
    )

if len(response['FaceMatches']) > 0:
    # Return results
    for match in response['FaceMatches']:

        face = dynamodb.get_item(
        TableName='table_name',               
        Key={'RekognitionId': {'S': match['Face']['FaceId']}}
        )


    if 'Item' in face:
        event = face['Item']['event_name']['S']
        full = face['Item']['full_name']['S']

    if(event=='newevent'):
        #your code goes here , i.e what you want to do if event=="newevent"