Данные моей таблицы выглядят так:
{
"id": {
"S": "alpha-rocket"
},
"images": {
"SS": [
"apple/value:50",
"Mango/aa:284_454_51.0.0",
"Mango/bb:291",
"Mango/cc:4"
]
},
"product": {
"S": "fruit"
}
}
Ниже приведен код для обновления таблицы. Переменные, которые я передаю функции, имеют значения product_id
имеет alpha-rocket
, image_val
имеет 284_454_53.0.0
и image
имеет Mango/aa:284_454_53.0.0
. Я пытаюсь обновить значение Mango/aa
с 284_454_51.0.0
до 284_454_53.0.0
, но получаю ошибку «Путь к документу, указанный в выражении обновления, недопустим для обновления»
def update_player_score(product_id, image_val, image):
dynamo = boto3.resource('dynamodb')
tbl = dynamo.Table('<TableName>')
result = tbl.update_item(
expression_attribute_names: {
"#image_name" => "image_name"
},
expression_attribute_values: {
":image_val" => image_val,
},
key: {
"product" => "fruit",
"id" => product_id,
},
return_values: "ALL_NEW",
table_name: "orcus",
update_expression: "SET images.#image_val = :image_val",
}
Есть ли способ обновите значение Mango/aa
или замените полную строку "Mango/aa:284_454_51.0.0"
на "Mango/aa:284_454_53.0.0"