无效的UpdateExpression:运算符或函数的操作数类型不正确; operator:ADD,操作数类型:LIST

时间:2016-05-10 07:11:38

标签: amazon-dynamodb

我尝试在UpdateExpression中使用ADD将电子邮件字符串添加到字符串集中,代码如下所示,但是遇到此异常:无效的UpdateExpression:运算符或函数的操作数类型不正确; operator:ADD,operand type:LIST。

我认为重点是我需要一种方法将类型更改为" string set" ,但不确定实现这一目的的语义是什么。

        response = wishesTable.update_item(
            Key={
                'title': wishTitle,
                'userMail': wishUsermail
            },
            UpdateExpression='ADD whoLikeList :my_value',
            ExpressionAttributeValues={
                ":my_value": [userEmail]
            },
            ReturnValues="UPDATED_NEW"
        )

1 个答案:

答案 0 :(得分:1)

引用TypeSerializer类(http://boto3.readthedocs.io/en/latest/_modules/boto3/dynamodb/types.html

将代码更改为以下内容,将其视为设置:

        response = wishesTable.update_item(
            Key={
                'title': wishTitle,
                'userMail': wishUsermail
            },
            UpdateExpression='ADD whoLikeList :my_value',
            ExpressionAttributeValues={
                ":my_value": set([userEmail])
            },
            ReturnValues="UPDATED_NEW"
        )