[英]How to add to a 'Map of Maps' in DynamoDB with boto3 (python)
我在 DynamoDB 中有以下結構:
{
"fruits": {
"1": {
"identifier": "orange",
"colour": "orange"
},
"2": {
"identifier": "strawberry",
"colour": "red"
}
},
"username": "my-username"
}
如何添加“第 3 個水果項目”及其相關屬性? 我的目標是實現以下目標:
{
"fruits": {
"1": {
"identifier": "orange",
"colour": "orange"
},
"2": {
"identifier": "strawberry",
"colour": "red"
},
"3": {
"identifier": "pear",
"colour": "green"
}
},
"username": "my-username"
}
我嘗試了類似於以下內容的方法:
result = table.update_item(
Key={
'username': str('my-username')
},
UpdateExpression='set fruits.3.identifier = :i, fruits.3.colour = :c',
ExpressionAttributeValues={
':i': 'pear',
':c': 'green'
}
)
謝謝!
您不能直接設置諸如fruits.3.identifier
之類的屬性,因為fruits.3
還不存在。 相反,您必須將fruits.3
設置為一個整體 object。
您的更新表達式應該是這樣的:
result = table.update_item(
Key={
'username': str('my-username')
},
UpdateExpression='set fruits.3 = :newFruit',
ExpressionAttributeValues={
':newFruit': {
'colour': 'green',
'identifier': 'pear'
}
}
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.