【问题标题】:Scan DynamoDB with boto3使用 boto3 扫描 DynamoDB
【发布时间】:2021-06-15 10:19:03
【问题描述】:

我目前正在尝试扫描整个 DynamoDB 表并在特定属性下查找特定值。如果这些值与我要查找的值匹配,我希望我的 python 代码删除整个 DynamoDB 项目。到目前为止,我目前有:

    dynamodb = boto3.resource('dynamodb')
    table = dynamodb.Table('name-of-table-here')
    response = table.scan()
    data = response['Items']

我想要这样的东西:

    for item in data:
       if valueOfAttribute == value_being_searched:
          delete DynamoDB item
       else:
          pass

不知道该怎么做。任何建议都非常感谢,谢谢!

【问题讨论】:

  • 如果您可以将过滤作为 FilterExpression 进行,那么您可以使用 ProjectionExpression 仅返回键。这使得删除非常容易,您只需传递您获得的项目。我不是 Python 人,所以我无法真正向您展示我在 Python 中的意思。
  • @JasonWadsworth 啊!!谢谢你!根据您所说的,我假设它会是这样的:stackoverflow.com/questions/44704443/… 我非常感谢您的意见。我会检查一下并更新这个线程它是如何工作的:)

标签: python amazon-web-services amazon-dynamodb


【解决方案1】:

我能够按照之前评论中的建议使用 FilterExpression 成功解决此问题。

这是我想出的:

    import boto3
    from boto3.dynamodb.conditions import Key

    fe = Key('attribute').eq('value')

    response = table.scan(
    FilterExpression=fe)
    data = response['Items']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 1970-01-01
    • 2021-05-25
    • 2016-10-15
    • 1970-01-01
    相关资源
    最近更新 更多