簡體   English   中英

將字典添加到項目 dynamodb python

[英]Add dict into Item dynamodb python

我在 dynamodb 上有一個項目寄存器,其結構如下:

{
"OwnerID":"12312wqeq", 
"license":"23423werwegdf",
"MaintenanceList":{
        "10-11-2018":{
                      "garage" : "lopcars",
                      "city" : "NY",
                      "country" "USA",
                      "location" : "1929-1927 Fulton St Brooklyn"
              }
       }
} 

我需要在列表中添加一個新的維護,我嘗試了這個:

response=table.update_item(
    Key={
        "OwnerID":"12312wqeq", 
        "license":"23423werwegdf",'
    }
    ,UpdateExpression = "SET #d1=:dt",
    ExpressionAttributeValues = {
            ':dt' : "12-11-2019":{
                       "garage" : "Crazycars",
                       "city" : "NY",
                       "country" "USA",
                       "location" : "120 E Suffolk Ave Central Islip"
               }
        }
                },
    ExpressionAttributeNames={
            '#d1' : 'MaintenanceList'
                },
    ReturnValues="UPDATED_NEW"
)

但覆蓋屬性MaintenanceList,我需要它在更新后看起來像這樣:

{
"OwnerID":"12312wqeq", 
"license":"23423werwegdf",
"MaintenanceList":{
        "10-11-2018":{
                      "garage" : "lopcars",
                      "city" : "NY",
                      "country" "USA",
                      "location" : "1929-1927 Fulton St Brooklyn"
              },
        "12-11-2019":{
                       "garage" : "Crazycars",
                       "city" : "NY",
                       "country" "USA",
                       "location" : "120 E Suffolk Ave Central Islip"
               }
       }
}

SET MaintenanceList=:dt表達式確實替換了名為 MaintenanceList 的屬性值。 如果您希望此屬性的內容為 hash 表並添加到其中,則需要使用嵌套屬性路徑對其進行更新,如本 DynamoDB 文檔中所述 例如做一些類似SET #d1.#date=:dt的事情。

但是,請注意,將 hash 表保留在單個屬性的值中是有問題的 - 它的總大小受到嚴格限制(限制為 400KB),並且每次讀取或寫入其中的一小部分時,您還需要為整個項目的大小付費。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM