Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon dynamodb 对于UpdateExpression语法,更新DynamoDB中的项失败_Amazon Dynamodb_Dynamodb Queries - Fatal编程技术网

Amazon dynamodb 对于UpdateExpression语法,更新DynamoDB中的项失败

Amazon dynamodb 对于UpdateExpression语法,更新DynamoDB中的项失败,amazon-dynamodb,dynamodb-queries,Amazon Dynamodb,Dynamodb Queries,我的表数据如下所示 { "id": { "S": "alpha-rocket" }, "images": { "SS": [ "apple/value:50", "Mango/aa:284_454_51.0.0", "Mango/bb:291", "Mango/cc:4" ] }, "product": { "S": "fruit" } } 下面是我更新表的代码。我传递给函数的变量有值pro

我的表数据如下所示

{
  "id": {
    "S": "alpha-rocket"
  },
  "images": {
    "SS": [
      "apple/value:50",
      "Mango/aa:284_454_51.0.0",
      "Mango/bb:291",
      "Mango/cc:4"
    ]
  },
  "product": {
    "S": "fruit"
  }
}
下面是我更新表的代码。我传递给函数的变量有值
product\u id
has
alpha rocket
image\u val
has
284\u 454\u 53.0.0
image
has
Mango/aa:284\u 454\u 53.0
。 我正在尝试将
Mango/aa
的值从
284_454_51.0.0
更新到
284_454_53.0.0
,但出现错误“更新表达式中提供的文档路径对于更新无效”

def更新球员得分(产品id、图像值、图像):
dynamo=boto3.resource('dynamodb')
tbl=发电机表(“”)
结果=待更新项目(
表达式\属性\名称:{
“#图像名称”=>“图像名称”
},
表达式\属性\值:{
“:image\u val”=>image\u val,
},
关键:{
“产品”=>“水果”,
“id”=>产品标识,
},
返回值:“所有新值”,
表_名称:“奥库斯”,
更新_表达式:“设置图像。#image_val=:image_val”,
}

有没有办法将
Mango/aa
的值更新或替换为完整字符串
“Mango/aa:284\u 454\u 51.0.0”
“Mango/aa:284\u 454\u 53.0.0”
您无法通过匹配字符串来更新列表中的字符串。如果您知道它的索引,您可以通过索引替换字符串的值:

SET images[1] = : image_val
似乎您想要的不是字符串列表,而是另一个映射。因此,您不需要让数据看起来像字符串列表,而是让它看起来像这样,这样您就可以进行所需的更新:

{
  "id": {
    "S": "alpha-rocket"
  },
  "images": {
    "M": {
      "apple" : {
        "M": {
          "value": {
            "S": "50"
          }
      },
      "Mango" : {
        "M": {
          "aa": {
            "S": "284_454_51.0.0"
          },
          "bb": {
            "S": "291"
          },
          "cc": {
            "S": "4"
          }
      }
    }
  },
  "product": {
    "S": "fruit"
  }
}
<>我也会考虑把不同的值放在表中不同的“行”中,并使用查询来构建对象。

{
  "id": {
    "S": "alpha-rocket"
  },
  "images": {
    "M": {
      "apple" : {
        "M": {
          "value": {
            "S": "50"
          }
      },
      "Mango" : {
        "M": {
          "aa": {
            "S": "284_454_51.0.0"
          },
          "bb": {
            "S": "291"
          },
          "cc": {
            "S": "4"
          }
      }
    }
  },
  "product": {
    "S": "fruit"
  }
}