J'ai besoin de mettre à jour l'attribut d'horodatage dans ma table dynamodb à l'aide de boto3 mais le nom d'attribut "horodatage" est un mot réservé, ce qui génère une erreur sur la commande SET.
table.update_item(
Key={
'id': item_id
},
UpdateExpression='SET timestamp = :val1', # this is the line giving the problem
ExpressionAttributeValues={
":val1": new_timestamp
}
)
"errorMessage": "Une erreur s'est produite (ValidationException) lors de l'appel de l'opération UpdateItem: UpdateExpression non valide: le nom de l'attribut est un mot clé réservé; mot clé réservé: horodatage",
Vous pouvez contourner ce problème en utilisant noms d'attribut d'expression (similaire aux ExpressionAttributeValues que vous utilisez déjà).
table.update_item(
Key={
'id': item_id
},
UpdateExpression='SET #ts = :val1',
ExpressionAttributeValues={
":val1": new_timestamp
},
ExpressionAttributeNames={
"#ts": "timestamp"
}
)
Lisez tout à ce sujet ici: https://docs.aws.Amazon.com/amazondynamodb/latest/developerguide/Expressions.ExpressionAttributeNames.html