Amazon Rekognition打印结果提供IndexError

时间:2018-04-21 11:12:02

标签: python amazon-web-services aws-lambda amazon-rekognition

我正在尝试打印Amazon Rekognition调用的结果,但它返回错误:

  

列表索引超出范围:IndexError

     

Traceback(最近一次调用最后一次):文件   “/var/task/lambda_function.py”,第57行,lambda_handler

     

time = response ['Persons'] [0] ['Timestamp']

     

IndexError:列表索引超出范围

我把索引[0],我真的不明白为什么它会发生在索引范围之外。

任何人都可以帮忙吗?

response = get_face_search(jobID)
time = response['Persons'][0]['Timestamp']
print(time)

#below is the format:
--------------------------------------------
{
'JobStatus': 'IN_PROGRESS'|'SUCCEEDED'|'FAILED',
'StatusMessage': 'string',
'NextToken': 'string',
'VideoMetadata': {
    'Codec': 'string',
    'DurationMillis': 123,
    'Format': 'string',
    'FrameRate': ...,
    'FrameHeight': 123,
    'FrameWidth': 123
},
'Persons': [
    {
        'Timestamp': 123,
        'Person': {
            'Index': 123,
            'BoundingBox': {
                'Width': ...,
                'Height': ...,
                'Left': ...,
                'Top': ...
            },
            'Face': {
                'BoundingBox': {
                    'Width': ...,
                    'Height': ...,
                    'Left': ...,
                    'Top': ...
                },
                'AgeRange': {
                    'Low': 123,
                    'High': 123
                },
                'Smile': {
                    'Value': True|False,
                    'Confidence': ...
                    },
                ],

                'Pose': {
                    'Roll': ...,
                    'Yaw': ...,
                    'Pitch': ...
                },
                'Quality': {
                    'Brightness': ...,
                    'Sharpness': ...
                },
                'Confidence': ...
            }
        },
        'FaceMatches': [
            {
                'Similarity': ...,
                'Face': {
                    'FaceId': 'string',
                    'BoundingBox': {
                        'Width': ...,
                        'Height': ...,
                        'Left': ...,
                        'Top': ...
                    },
                    'ImageId': 'string',
                    'ExternalImageId': 'string',
                    'Confidence': ...
                }
            },
        ]
    },
]
}

1 个答案:

答案 0 :(得分:0)

你的代码很好。问题是您的response对象不包含预期的数据。

boto3要求所有输入参数必须是关键字,因此:

response = get_face_search(jobID)

应该是:

response = get_face_search(JobId = jobID)

有关处理get_face_search()结果的Python脚本示例,请参阅:Automated video editing with YOU as the star! | AWS Machine Learning Blog