python - dynamodb boto3 中的 update_item 示例

标签 python amazon-dynamodb boto3 botocore

关注 the documentation ,我正在尝试创建一个更新语句,如果 dynamodb 表中不存在一个属性,它将更新或添加。

我正在尝试这个

response = table.update_item(
    Key={'ReleaseNumber': '1.0.179'},
    UpdateExpression='SET',
    ConditionExpression='Attr(\'ReleaseNumber\').eq(\'1.0.179\')',
    ExpressionAttributeNames={'attr1': 'val1'},
    ExpressionAttributeValues={'val1': 'false'}
)

我得到的错误是:

botocore.exceptions.ClientError:调用UpdateItem操作时发生错误(ValidationException):ExpressionAttributeNames包含无效键:语法错误;键:“attr1”

如果有人做过与我想要达到的目标类似的事情,请分享示例。

最佳答案

找到工作示例 here ,将表的所有索引作为键列出非常重要,这将需要在更新之前进行额外的查询,但它可以工作。

response = table.update_item(
    Key={
        'ReleaseNumber': releaseNumber,
        'Timestamp': result[0]['Timestamp']
    },
    UpdateExpression="set Sanity = :r",
    ExpressionAttributeValues={
        ':r': 'false',
    },
    ReturnValues="UPDATED_NEW"
)

关于python - dynamodb boto3 中的 update_item 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34447304/

相关文章:

python - AWS Lambda 多线程和 boto3

python - 如何将协调的元素写入给定的控制台?

python - 来自 scikit-learn 的 plot_partial_dependence() 为正确拟合的模型(例如 KerasRegressor 或 LGBMClassifier)错误地引发 NotFittedError

python - python 动态访问 Django 模型字段

javascript - 如何在 DynamoDB 表中插入多个项目并在超出最大容量时等待?

ruby-on-rails - Ruby on Rails DynamoDB AWS 开发工具包 v2

python - 使用 pandas 缓存 CSV 读取数据以进行多次运行

ruby - AWS ruby​​ gem 好像没有安装

amazon-web-services - 如何搜索/查询符合条件的SQS队列元素

amazon-web-services - 如何使用 boto3 删除 VPC 及其所有依赖项?