当前位置: 首页 > 知识库问答 >
问题:

boto Dynamodbbatch_write和delete_item--'提供的键元素与模式不匹配'

林项明
2023-03-14

我正在尝试使用boto和python删除DynamoDB表中的大量项。我的表是用主键作为设备ID(想想MAC地址)设置的。表中有多个设备ID条目,因为主键是UNIX时间戳。

从我的阅读代码应该工作:

from boto.dynamodb2.table import Table

def delete_batch(self, guid):    
    table = Table('Integers')

    with table.batch_write() as batch:
        batch.delete_item(Id=guid)

来源:http://docs.pythonboto.org/en/latest/dynamodb2_tut.html#batch-writing

但是,它返回“提供的键元素与架构不匹配”作为错误消息。

我怀疑问题是因为guid在我的表中不是唯一的。

考虑到这一点,有没有办法删除具有相同主键的多个项目而不指定辅助键?

共有1个答案

边明煦
2023-03-14

您只提供了密钥的散列部分,而没有提供项(散列范围)-这就是为什么会出现错误,并且无法删除项。

您不能要求DynamoDB使用散列键删除所有项(与查询获取所有项的方式相同)

更多信息,请阅读Steffen的回答

 类似资料:
  • 我在DynamoDB中创建了一个表“user\u info”,其中有一个主哈希键“user\u id”(String),没有范围键。然后,我创建了2个AWS lambda函数来插入和查询项目。我可以将项目插入表中,但查询表时,它会返回: ValidationException:提供的键元素与架构不匹配。 我的查询功能: 我一直得到这个例外: 自从 1) 我只有一个哈希主键。 2)user_id定义

  • 我正在尝试使用AWS Lambda函数将csv数据从S3写入DynamoDB。我当前收到以下错误“BatchWriteItem操作:提供的键元素与架构不匹配”。 这个问题有快速解决办法吗? 错误如下所示: 调用BatchWriteItem操作时发生错误(ValidationExc0019):提供的键元素与模式不匹配:ClientError Traceback(最近的调用最后一次): 文件“/var

  • 我正在尝试使用boto3从DynamoDB查询项目。 该表如下所示: DynamoDB表 我运行的代码是: 我错过了什么?

  • 我在Boto3/DynamoDB BatchGetItem操作中遇到困难。我将非常感谢任何帮助或指导!我对python/aws非常陌生,如果这是一个新手问题,那么很抱歉在高级版。 当我执行该操作时,会出现以下错误: 这是我的代码: 这是表中项目的屏幕盖。 这是表详细信息的屏幕盖,显示分区键为'item_ID',是'string' 以下是完整的错误消息:

  • 我是AWS的新手,我正在尝试通过Lambda更新DynamoDB中的一个item属性。我尝试了Node.JS和Python中的代码,两次尝试都返回: 模块初始化错误:调用UpdateItem操作时发生错误(ValidationException):提供的键元素与架构不匹配 为什么会发生这种情况?这是我的表格信息: 表名:高端假日拍卖 主分区键:Aliyah_ID(字符串) 主排序键:最高投标人(字

  • 当我试图从表中获取项目时,它会打印此错误 botocore.exceptions.ClientError:调用GetItem操作时发生错误(ValidationException):提供的键元素与架构不匹配 这是我的密码 有什么想法吗?谢谢