【问题标题】:BOTO3 DynamoDB error: delete an item from a LIST attribute in a dynamodb tableBOTO3 DynamoDB 错误:从 dynamodb 表中的 LIST 属性中删除项目
【发布时间】:2018-04-19 18:36:59
【问题描述】:

我们有一个以“item_id”作为主键/哈希键的 dynamoDB 表。 'my_list' 属性之一是字符串列表。我正在尝试从列表中删除索引“0”。当我对索引进行硬编码时,它可以工作:

item_key = {'item_id': {'S': item_id}}
update_expression = "remove mylist[0]"

response = client.update_item(
    TableName=table_name, Key=item_key, UpdateExpression=update_expression)

但是当我尝试将索引作为变量传递时,出现错误:

item_key = {'item_id': {'S': item_id}}
update_expression = "remove mylist[:n]"

update_expression_values = {':n': {'N': 0}}

response = client.update_item(
    TableName=table_name, Key=item_key, UpdateExpression=update_expression,
    ExpressionAttributeValues=update_expression_values)

botocore.exceptions.ParamValidationError:参数验证失败: 参数 ExpressionAttributeValues 的类型无效。:n.N,值:0,类型:,有效类型:类 'str'

【问题讨论】:

    标签: python amazon-dynamodb boto3


    【解决方案1】:

    要解决此问题,只需将零作为字符串传递:

    update_expression_values = {':n': {'N': '0'}}

    应该可以解决的

    【讨论】:

      猜你喜欢
      • 2018-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-24
      • 1970-01-01
      • 2017-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多