【问题标题】:UpdateExpression taking dynamic values for update function in DynamoDB table using boto3UpdateExpression 使用 boto3 为 DynamoDB 表中的更新函数获取动态值
【发布时间】:2020-08-06 22:37:42
【问题描述】:

这是第一部分的两部分问题 Updating the value of DynamoDB table with boto3 implemented lambda function

现在我想要实现的是动态更新价值

def lambda_handler(event, context):
    param = event['queryStringParameters']['employeID']
    name = event['queryStringParameters']['employeName']
    dynamodb = boto3.resource('dynamodb', region_name="us-east-1")
    table = dynamodb.Table('api_demo_employe')
    column = [cloumn1,cloumn2......]
    for i in range(0,len(column):

       query = 'SET {} = :f'.format(column[i])

       response = table.update_item(
           Key = {
               'employeID' : param
           },
           ExpressionAttributeValues = {
    
              ':f': name
          },
           UpdateExpression = query
    
          )

我遇到了一个错误

 "errorMessage": "An error occurred (ValidationException) when calling the UpdateItem operation: One or more parameter values were invalid: Cannot update attribute employeID. This attribute is part of the key",

我知道问题在于我如何处理 UpdateExpression

有谁能帮我把这个放上去吗?

【问题讨论】:

    标签: python-3.x amazon-web-services amazon-dynamodb boto3 dynamodb-queries


    【解决方案1】:

    您正在尝试更新项目的密钥,但不起作用。您必须删除并重新创建该项目。

    详情请参考Amazon DynamoDB documentation

    您不能使用UpdateItem 更新任何主键属性。相反,您需要删除该项目,然后使用PutItem 创建具有新属性的新项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-16
      • 1970-01-01
      • 1970-01-01
      • 2023-01-25
      • 2019-09-26
      • 1970-01-01
      • 2016-04-13
      • 1970-01-01
      相关资源
      最近更新 更多