[英]For a DynamoDB item, how can i append a list which is a value of a key only if the element is not exists in that list?
我在 DynamoDB 中有一個項目,它有一個鍵值作為列表。 我想在該列表中附加新元素,前提是它們尚不存在於該列表中。 我不想復制該列表中的任何元素。 項目的結構如下:
{
"username": "blabla",
"my_list": ["element1","element2"]
}
我在 Python 中使用 boto3 庫,這是我的更新代碼塊:
response = my_table.update_item(
Key = {
'username': "blabla"
},
UpdateExpression="SET my_list = list_append(my_list, :i)",
ExpressionAttributeValues={
':i': ["element1"],
},
ReturnValues="UPDATED_NEW"
)
我嘗試在 UpdateExpression 中使用 if_not_exist() 但總是出現語法錯誤。 我怎樣才能正確地實現這個目標? 謝謝你。
您不應該使用需要使用字符串集的列表,例如在此處定義為數據類型:
要向 Set 添加值,您需要使用 ADD UpdateOperation ,如下所述
根據這個你可以改變你的代碼
{
"username": "blabla",
"my_list": set(["element1","element2"])
}
# ---
response = my_table.update_item(
Key = {
'username': "blabla"
},
UpdateExpression="ADD my_list :i",
ExpressionAttributeValues={
':i': set(["element1"]),
},
ReturnValues="UPDATED_NEW"
)
此答案顯示如何再次從集合中刪除項目
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.