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

Python Boto3 AWS DynamoDB从表中获取项,不带排序键

葛胡媚
2023-03-14

我试图从AWS Lambda函数更新DynamoDb表中的一项,但出现以下错误:

“errorMessage”:“调用UpdateItem操作时发生错误(ValidationException):提供的键元素与架构不匹配”,

在定义我的表时,我没有定义排序键,我的分区键名为'pipeId',我使用了以下代码:

dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('mytable')

response = table.update_item(
    Key={
        'pipeId': pipe_id
        },
    UpdateExpression="set hookId = :r",
    ExpressionAttributeValues={
            ':r': hook_id
        },
    ReturnValues="UPDATED_NEW"
)

在没有预先设置排序键的情况下,无法获取或更新项?还是我做错了什么?

共有1个答案

越英范
2023-03-14

我找到了解决办法

问题是,我的主键被定义为数字,而我将它作为字符串插入,如“3219”;但它不会自动转换。

 类似资料:
  • 问题内容: 假设我在sqlite DB中有一个表,其中有两个字段:名称和年龄。 如何查询sqlite表中的Zek,并确定他是最老的?更笼统地说,假设我有数百万个名称和年龄,并且我想查询一个特定的条目,例如name =“ Juju bear”,并通过不同的字段查找条目的排名,例如,“ Juju bear”的排名为133455(按年龄)。 谢谢, 科罗拉多州 问题答案: 您可以使用子查询来计算年龄较大

  • 问题内容: 我有一个看起来像这样的列表列表: 删除重复列表的最佳方法是什么?使用上面的示例,我正在寻找会产生这种情况的代码: 我最初以为我可以使用,但这似乎不适用于列表列表。我还看到了一个使用的示例,但是代码对我来说并不完全清楚。谢谢您的帮助! 问题答案: uniq_animal_groups = set(map(tuple, animal_groups)) 尽管您将得到一组元组而不是一组列表,但

  • 我的问题是如何根据值和键对内容进行排序,并得到一个? 首先,条目需要按值降序排序,如果值发生冲突,也要按键降序排序。 给定的示例: 预期订单:

  • 我有一个带有主键和排序键的表;因为这是一个复合键,所以我有多个主键与不同的排序键映射。 如何获取与特定主键关联的所有排序键? 我尝试使用“Get”操作,但这似乎也需要排序键(尽管我正在寻找这些键)。我还研究了“BatchGet”操作,但这是针对多个不同的键,而不是针对具有多个不同排序键的单个主键。 我也尝试过“查询”,但没有成功,但我对这一点了解较少,所以这可能就是解决方案——是这样吗?我还知道,

  • 我已经制作了一个包含字符串键和整数值的Hashmap。更具体地说,我从twitter API收集数据,并根据每个用户的关注者数量按降序对我的HashMap进行排序。 例如: @jeremy23:13.200追随者 @布兰登WW:10.343 @航空:6.002。。。 我想做的下一件事是制作一个一维数组,其中仅包含用户的姓名(但保持排序给我的顺序)。我的目标是制作一个包含最多以下人员的排名数组。我的

  • 结果:[1,2,3,3,3,4,4][1,2,3,3,3,4,4]