У меня проблема с API-интерфейсом AWS Rekognition Python. Интересно то, что проблема, с которой я сталкиваюсь, затрагивает только API response = client.detect_faces
, поскольку проблема не возникает с response = client.detect_labels
. Я пытаюсь отфильтровать только ту информацию, которую я хочу использовать в следующих частях моей программы. Это прекрасно работает для определения метки с помощью этого кода:
labels1=response['Labels']
extractor=len(labels1)
for i in range(0,extractor):
print(labels1[diction_counter])
diction_counter += 1
diction_counter=0
Аналогичный код определяет labels1
как список, который включает все FaceDetails:
labels1=response['FaceDetails']
При печати этого списка он отображает огромный блок информации, и именно это он и должен делать в данный момент. Однако при запросе длины списка
print(len(labels1))
Я получаю ответ 1
На этом этапе начинаются проблемы, с которыми я сталкиваюсь. Согласно структуре ответа для FaceDetection, найденной в AWS Boto 3 документах , структура ответа FaceDetails
разделена на 15 словарей, которые затем содержат информацию, которую я ищу. Однако я не могу отделить словари с помощью метода, который работал для функции DetectLables:
extractor=len(labels1)
for i in range(0,extractor):
print(labels1[diction_counter])
diction_counter += 1
Причина этого в том, что python видит ответ в виде списка с длиной 1 и поэтому снова отображает все. Вывод выглядит так:
[{'BoundingBox': {'Width': 0.23359374701976776, 'Height': 0.41527777910232544,
'Left': 0.484375, 'Top': 0.125}, 'AgeRange': {'Low': 12, 'High': 22}, 'Smile':
{'Value': False, 'Confidence': 99.90431213378906}, 'Eyeglasses': {'Value':
False, 'Confidence': 99.99996185302734}, 'Sunglasses': {'Value': False,
'Confidence': 98.4183578491211}, 'Gender': {'Value': 'Male', 'Confidence':
99.9287338256836},...
Я пробовал несколько вещей, таких как преобразование всего этого в строку, а затем в список, разделенный запятыми, но ничего не помогло. Если у кого-то есть идея, как мне извлечь определенную информацию, чтобы вывод выглядел следующим образом:
'AgeRange': {'Low': 12, 'High': 22},
'Smile':{'Value': False, 'Confidence': 99.90431213378906},
'Eyeglasses': {'Value': False, 'Confidence': 99.99996185302734},
'...
Буду очень признателен за советы и рекомендации по достижению этой цели.