2016-04-22 106 views
1

我有一个映射列表作为DynamoDB表的一个字段。如何更新一个特定元素(或者说要素场?) 试图像dynamodb中的更新列表元素

rc = table.update_item(Key={ 'username' : user }, 
    UpdateExpression="set list[:i].field = :nd", 
    ExpressionAttributeValues={ 
     ':i' : itemnum, 
     ':nd': data, 
    }, 
    ReturnValues="UPDATED_NEW" 
); 

但我得到一个错误:

Invalid UpdateExpression: Syntax error; token: ":i", near: "[:i]" 

任何想法如何,我可以参考列表元素与变量数。谢谢。

回答

2

使用文字来代替:

rc = table.update_item(Key={ 'username' : user }, 
    UpdateExpression="set list[" + itemnum + "].field = :nd", 
    ExpressionAttributeValues={ 
     ':nd': data, 
    }, 
    ReturnValues="UPDATED_NEW" 
);