Amazon dynamodb UpdateExpression无效:运算符或函数的操作数类型不正确;运算符:添加,操作数类型:列表

Amazon dynamodb UpdateExpression无效:运算符或函数的操作数类型不正确;运算符:添加,操作数类型:列表,amazon-dynamodb,Amazon Dynamodb,我试图使用外接程序UpdateExpression将电子邮件字符串添加到字符串集中,代码如下,但遇到以下异常:UpdateExpression无效:运算符或函数的操作数类型不正确;运算符:添加,操作数类型:列表 我想重点是我需要一种方法将类型更改为“字符串集”,但不确定实现这一点的语义是什么 response = wishesTable.update_item( Key={ 'title': wishTitle,

我试图使用外接程序UpdateExpression将电子邮件字符串添加到字符串集中,代码如下,但遇到以下异常:UpdateExpression无效:运算符或函数的操作数类型不正确;运算符:添加,操作数类型:列表

我想重点是我需要一种方法将类型更改为“字符串集”,但不确定实现这一点的语义是什么

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

通过引用TypeSerializer类( )

将代码更改为以下,将被视为已设置:

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

还请注意,您需要确保字段最初是使用
set(list)
设置的,而不仅仅是
list
,否则它将无法更新,因为dynamo中的属性不是一个集合。更新为使用set()也为我修复了它(谢谢!),只需更改我的初始插入代码。谢谢,这为我修复了它!仅供参考,您还可以使用集合文字
“:my_value”:{userEmail}
而不是
“:my_value”:set([userEmail])