Boto3 更新多个值

Boto3 updating multiple values

在 boto3 文档中更新一个项目是通过这个例子描述的:

table.update_item(
    Key={
        'username': 'janedoe',
        'last_name': 'Doe'
    },
    UpdateExpression='SET age = :val1',
    ExpressionAttributeValues={
        ':val1': 26
    }
)

但是,如果我想更新项目的多个值,我该怎么办。我找不到这方面的任何信息。有人可以帮忙吗?谢谢!

编辑:

好的,它似乎是这样工作的,任何人都可以确认这是否是正确的方法。只是为了确保我在这里没有做任何完全错误的事情。

table.update_item(
                    Key={
                        'id': item['id']
                    },
                    UpdateExpression='SET value1 = :val1, value2 = :val2',
                    ExpressionAttributeValues={
                        ':val1': someValue1,
                        ':val2': someValue2
                    }
                )

谢谢!

是的,就是这样。甚至许多操作都可以在单个表达式中完成,如 here 所示。 例如:单个表达式中的多个 'PUT' 和 'DELETE'。

对于其他发现此问题的人,您可以使用一个库来帮助解决奇怪的 boto3 问题,例如 ExpressionAttributeValues。这样您就可以进行正常的 developer/human 调用。

https://github.com/rayepps/dynamof

db(update(
  table_name='users',
  key={ 'id': item['id'] },
  attributes={
      'age': 26,
      'name': 'Carl'
  }))

免责声明:我写的