Boto3更新了多个值

时间:2016-06-09 08:56:07

标签: python amazon-dynamodb aws-lambda boto3

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
                    }
                )

谢谢!

2 个答案:

答案 0 :(得分:7)

是的,这是方法。甚至很多动作都可以在单个表达式中完成,如here所示。 例如:多个' PUT'和'删除'单表达。

Snapshot showing the example from document

答案 1 :(得分:0)

对于其他发现此问题的人,您可以使用一个库来帮助处理诸如ExpressionAttributeValues之类的奇怪的boto3。这样,您就可以拨打普通的开发人员/人工电话。

https://github.com/rayepps/dynamof

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

免责声明:我写的