Я использовал putitem для вставки json в DynamodB в моей лямбде. Это работает нормально, но могут быть случаи, когда я хочу сделать частичные обновления - и обновлять только те части Json, которые изменились или являются новыми.
, например:
{
fruits:
{
apple:
{
color: green
}
orange:
{
color: orange
}
}
}
Я мог бы тогда хотеть отправить обновление как это:
{
fruits:
{
apple:
{
color: red
}
}
}
В идеале, это должно только изменить Json на это:
{
fruits:
{
apple:
{
color: red
}
orange:
{
color: orange
}
}
}
Вот мой текущий код:
data = json.loads(event['body'])
table.put_item(Item=data)
У меня, например, ключ раздела my_id
.
Я пробовал это:
table.update_item(
Key = { 'my_id': my_id },
UpdateExpression = 'SET fruits= :my_data',
ExpressionAttributeValues = {
':my_data': data
}
)
Но это перезапишет фрукты и удалит apple
в приведенном выше примере.
Есть ли способ обновить части json без указания, какие именно атрибуты c вы хотите обновить?