我试图更新DynamoDB表中的项目。我写的代码正在更新项目,但是当我添加一个标题为“源代码/目标”的列时,它会给出一个“验证异常”异常。
用于更新的代码-
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table("test")
response = table.update_item(
Key={
'id': "test_id
},
UpdateExpression="set source/target= :st, user_name= :usr",
ExpressionAttributeValues={
':st' : event['source/target'],
':usr' : event['user_name']
},
ReturnValues="UPDATED_NEW"
)
我得到的错误是-
调用UpdateItem操作时发生错误(ValidationException):无效的UpdateExpression:语法错误;标记:\“/\”,靠近:\“源/目标”
这个怎么解决?
由于您在属性名称中使用了一个特殊字符,我认为您需要指定一个表达式attributeNames
。
我不知道确切的语法,但应该是这样的:
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table("test")
response = table.update_item(
Key={
'id': "test_id
},
UpdateExpression="set #src = :st, user_name = :usr",
ExpressionAttributeValues={
':st' : event['source/target'],
':usr' : event['user_name']
},
ExpressionAttributeNames={
'#src' : 'source/target'
},
ReturnValues="UPDATED_NEW"
)
嗨,当你有以下任何特殊字符时,你必须使用ExpressionAtiniteNames
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table("test")
response = table.update_item(
Key={
'id': "test_id
},
UpdateExpression="set #colName= :st, user_name= :usr",
ExpressionAttributeValues={
':st' : event['source/target'],
':usr' : event['user_name']
},
ExpressionAttributeNames={
'#colName' : 'source/target'
},
ReturnValues="UPDATED_NEW"
)
问题内容: 我一直在尝试找出如何更新dynamoDB中的项目,但没有成功。 我知道如何添加和删除项目,但不更新。 这是我的代码: 问题答案: 看来您正在尝试使用Expression更新项目,在这种情况下,您不正确。无论是和用于占位符代替你的表达。 我想如果您想为某项设置属性,您的代码将类似于以下内容: 这将更新一个看起来像这样的项目: 对此:
在文档之后,我尝试创建一个update语句,该语句将更新或添加dynamodb表中的一个属性(如果不存在)。 我在试这个 我得到的错误是: 如果有人做了类似于我正在努力实现的事情,请分享例子。
这看起来应该很简单,但我没有找到任何例子或留档。我有一个看起来像这样的Dynamodb表: 记录1:{姓名、电子邮件、项目[{product}、{item2}、{item3]} 记录2:(姓名、电子邮件、项目[{product}、{item2}、{item3]} 我需要能够更新items元素,即更新记录1中的item1对象。我可以通过硬编码list数组元素使用以下代码来实现这一点,但我不知道如何将
目前,我正在用一个查询检查该项是否存在,然后使用put或updateItem,我想更改它并对DDB进行一次调用。我想进行一个将更新或创建项目的查询。 下面是我的项目的一个例子: 项目类型: 如果项目存在,我想推送一个新项目,比如{papa:'dsfadsf'}(永远不要修改fa映射内的现有项目),并修改pa映射内的finish值 这是更新后的项目: 这是我尝试的,但不起作用
问题内容: 我的文档如下所示: 说,我需要使用 与会者ID:2016102973634-df 更新与会者JSON数组。我尝试了使用 更新和条件表达式的 多种方法,但均未成功。 这是我的尝试: 找不到用于更新数组中的Json的任何资源。 @notionquest发表评论后:-尚未使用任何JsonMarshaller。最初,我将空数组添加到与会者字段,如下所示: 然后,当新的 与会者 到来时,将其添加