Boto3 DynamoDB Python ConditionalExpression 不工作

Boto3 DynamoDB Python ConditionalExpression not working

目标只是在帐号不存在于列表中时附加帐号。但是无论如何它似乎都会附加帐号,所以我最终得到了重复项。我到底做错了什么?

response = table.update_item(
        Key={
            'id': id,
            'num': num
        },
        ConditionExpression="NOT contains(#AN, :AN)",
        UpdateExpression="SET #AN = list_append(#AN,:AN)",
        ExpressionAttributeNames={
            "#AN": "AccountNumber",
        },
        ExpressionAttributeValues={
            ":AN": [AccountNumber],
        },
        ReturnValues='UPDATED_NEW'
        )

如果有人偶然发现了这个。 我认为问题在于 list_append 只接受 List 类型的对象。 所以“:AN”是一个列表。 但是当它检查帐号的条件时,正在检查列表对象而不是帐号本身。 因为它实际上从未包含 [AccountNumber] 但它确实包含 AccountNumber.