2016-04-22 89 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" 
);