小编Tor*_*byn的帖子

使用FilterExpression的Dynamodb scan()

首先发表在Stack上,这是使用Python和使用DynamoDB进行编程的新手,但是我只是试图对我的表进行扫描,以返回基于两个预定义属性的结果。

---这是我的Python代码段---

shift = "3rd"
date = "2017-06-21"

if shift != "":
    response = table.scan(
        FilterExpression=Attr("Date").eq(date) and Attr("Shift").eq(shift)
    )
Run Code Online (Sandbox Code Playgroud)

我的DynamoDB有4个字段。

  1. ID
  2. 日期
  3. 转移
  4. 安全

DynamoDB图片

现在,针对该问题,在运行时,我将获得两个表条目,而我仅应获得第一个条目...根据我的扫描标准,该条目具有“无安全问题”。

---这是我的DynamoDB返回结果---

[
  {
    "Shift": "3rd",  
    "Safety": "No safety issues",  
    "Date": "2017-06-21",
    "ID": "2"
  }, 
  {
    "Shift": "3rd", 
    "Safety": "Cut Finger", 
    "Date": "2017-06-22", 
    "ID": "4"
  }
]
Run Code Online (Sandbox Code Playgroud)

返回的项目:2

我相信,通过将FilterExpression与逻辑“和”一起应用,可以指定扫描操作正在查找满足两个条件的条目,因为我使用了“和”。

可能是因为在两个条目中都找到了“ shift”属性“ 3rd”吗?如何确保它根据两个条件都满足而返回条目,而不仅仅是给出一种属性类型的结果?

我觉得这很简单,但是我在以下位置查看了可用的文档:http : //boto3.readthedocs.io/en/latest/reference/services/dynamodb.html#DynamoDB.Table.scan,仍然遇到问题。任何帮助将不胜感激!

PS我试图使文章简单易懂(不包括我的所有程序代码),但是,如果需要其他信息,我可以提供!

python python-2.7 amazon-dynamodb

7
推荐指数
4
解决办法
1万
查看次数

标签 统计

amazon-dynamodb ×1

python ×1

python-2.7 ×1