Python 亚马逊Rekognition打印结果给出索引器
我试图打印Amazon Rekognion调用的结果,但它返回错误: 列表索引超出范围:索引器 回溯(最近一次调用上次):文件 lambda_处理程序中的第57行“/var/task/lambda_function.py” 时间=响应['Persons'][0]['Timestamp'] 索引器:列表索引超出范围 我把索引[0]放进去,我真的不明白为什么它会超出索引范围 有人能帮忙吗Python 亚马逊Rekognition打印结果给出索引器,python,amazon-web-services,aws-lambda,amazon-rekognition,Python,Amazon Web Services,Aws Lambda,Amazon Rekognition,我试图打印Amazon Rekognion调用的结果,但它返回错误: 列表索引超出范围:索引器 回溯(最近一次调用上次):文件 lambda_处理程序中的第57行“/var/task/lambda_function.py” 时间=响应['Persons'][0]['Timestamp'] 索引器:列表索引超出范围 我把索引[0]放进去,我真的不明白为什么它会超出索引范围 有人能帮忙吗 response = get_face_search(jobID) time = response['Perso
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': ...
}
},
]
},
]
}
你的代码很好。问题在于
响应
对象不包含预期数据
bot3
要求所有输入参数必须是关键字,因此:
response = get_face_search(jobID)
应该是:
response = get_face_search(JobId = jobID)
有关处理
get\u face\u search()
结果的Python脚本示例,请参阅:您已经向我们展示了响应的(预期的?)格式,但是转储实际响应的结构如何?如果没有人员
元素怎么办?您好,谢谢您的回复。我想我发现了问题所在。即get face搜索实际上需要几秒钟来推送结果,在推送过程中,它将显示状态,如“成功”、“进行中”、“失败”,每次处理程序尝试打印结果时,get_face_搜索方法都会使用Persons[]和“jobstatus”=“进行中”获取返回值,我正在考虑写一个循环来保持读取jobstatus,直到它==成功。是的,您可以这样做。Rekognition将向SNS主题发送一条消息,该消息可用于触发结果检索。否则,每隔几秒钟轮询一次响应就足够了。您好,感谢您的建议,我正在尝试使用SNS主题,只是想知道另一个lambda中的get_face_search()函数如何检索从start_face_search()生成的作业ID?许多感谢来自:Rekognition视频向注册的Amazon SNS主题发送分析完成通知。通知包括JSON字符串中的作业标识符和操作完成状态。