Я использую лямбду для обнаружения лиц и хотел бы отправить ответ в Dynamotable.Это код, который я использую:
rekognition = boto3.client('rekognition', region_name='us-east-1')
dynamodb = boto3.client('dynamodb', region_name='us-east-1')
# --------------- Helper Functions to call Rekognition APIs ------------------
def detect_faces(bucket, key):
response = rekognition.detect_faces(Image={"S3Object": {"Bucket": bucket,
"Name": key}}, Attributes=['ALL'])
TableName = 'table_test'
for face in response['FaceDetails']:
table_response = dynamodb.put_item(TableName=TableName, Item='{0} - {1}%')
return response
Моя проблема в этой строке:
for face in response['FaceDetails']:
table_response = dynamodb.put_item(TableName=TableName, Item= {'key:{'S':'value'}, {'S':'Value')
Я вижу результат в консоли.Я не хочу добавлять определенный элемент (ы) в таблицу - мне нужно, чтобы весь ответ был перенесен в таблицу.
Сделайте следующее: 1. Что добавить в таблицу в качестве ключа и ключа раздела?2. Как перенести весь ответ в таблицу
Я застрял в этом три дня и не могу найти никакого результата.Пожалуйста, помогите!
******************* EDIT *******************
Я попробовал этот код:
rekognition = boto3.client('rekognition', region_name='us-east-1')
# --------------- Helper Functions to call Rekognition APIs ------------------
def detect_faces(bucket, key):
response = rekognition.detect_faces(Image={"S3Object": {"Bucket": bucket,
"Name": key}}, Attributes=['ALL'])
TableName = 'table_test'
for face in response['FaceDetails']:
face_id = str(uuid.uuid4())
Age = face["AgeRange"]
Gender = face["Gender"]
print('Generating new DynamoDB record, with ID: ' + face_id)
print('Input Age: ' + Age)
print('Input Gender: ' + Gender)
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table(os.environ['test_table'])
table.put_item(
Item={
'id' : face_id,
'Age' : Age,
'Gender' : Gender
}
)
return response
Это дало мне две ошибки:
1. Error processing object xxx.jpg
2. cannot concatenate 'str' and 'dict' objects
Можете ли вы получить помощь!