首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运算符或函数的操作数类型不正确;运算符:添加,操作数类型:字符串,typeSet: ALLOWED_FOR_ADD_OPERAND

运算符或函数的操作数类型不正确;运算符:添加,操作数类型:字符串,typeSet: ALLOWED_FOR_ADD_OPERAND
EN

Stack Overflow用户
提问于 2021-07-16 11:06:28
回答 1查看 2.6K关注 0票数 1

我正在尝试更新DynamoDB中的一行并添加新列

代码语言:javascript
复制
resp = table.update_item(
            Key={
                'Pkey': 'key1',
                'Skey': 'skwy2'
            },
            UpdateExpression='ADD dateModified :input2, SET IsActive = :input1',
            ExpressionAttributeValues={
                ':input1': False,
                ':input2' : 'Test'
            },
            ReturnValues="UPDATED_NEW"
        )

在input2中出现错误,我甚至尝试了

代码语言:javascript
复制
':input2': {'S' : "Test"}

那不管用。

为什么我会面临这样的问题

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-16 11:20:24

您可以查看https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html#Expressions.UpdateExpressions.ADD - ADD处理数字和集合的文档。

添加操作只支持数字和设置数据类型。

还有一个注意事项:

一般来说,我们建议使用SET而不是ADD。

因为您想要添加新值,所以SET完全能够做到这一点。来自https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html#Expressions.UpdateExpressions.SET

使用update表达式中的SET操作向项添加一个或多个属性。如果这些属性中的任何一个已经存在,则由新值覆盖它们。

因此,您可以跳过添加操作,只需使用SET

但是,根据python库的不同,您可能需要将值包装为{"BOOL":false}{"S":"Test"}

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68407978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档