BOTO3 DynamoDB错误:从dynamodb表中的LIST属性中删除项目

时间:2018-04-19 18:36:59

标签: python amazon-dynamodb boto3

我们有一个dynamoDB表,其中'item_id'作为主键/哈希键。其中一个属性'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,类型:,有效类型:class'str'

1 个答案:

答案 0 :(得分:0)

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

A←(1 3 2)(3 2 1) B←'ABC' ⎕fmt {B[⍵]}¨¨A ┌2────────────┐ │┌3───┐ ┌3───┐│ ││ ACB│ │ CBA││ │└────┘ └────┘2 └∊────────────┘ C←(1 3 2 3 2 1)(3 2 1) ⎕fmt {B[⍵]}¨¨C ┌2───────────────┐ │┌6──────┐ ┌3───┐│ ││ ACBCBA│ │ CBA││ │└───────┘ └────┘2 └∊───────────────┘

那应该解决