AWS Rekognition "ответ ['FaceDetails']" - PullRequest
0 голосов
/ 05 июля 2018

У меня проблема с 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},
'...

Буду очень признателен за советы и рекомендации по достижению этой цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...