AWS Boto3 Dynamodb查询问题
问题描述:
我遇到了定义AWS Dynamodb的查询表达式的问题。 目标是获得包含字符串“1475413345”的字段timeStamp的唯一dynamodb记录。我已确认可以使用相同的字符串通过AWS Web控制台检索此文件。AWS Boto3 Dynamodb查询问题
我怀疑我的.contains的语法不正确。
任何援助非常感谢!
这里是代码:
import boto3
from boto3.dynamodb.conditions import Key, Attr
from time import sleep
benchtemp = boto3.resource('dynamodb') # if set in ~/.boto
table = benchtemp.Table('benchtemp')
temps = table.query(
KeyConditionExpression=Key('timeStamp').contains('1475413345')
)
for temp in temps:
print temp;
time.sleep(1)
以下是错误消息我得到:
Traceback (most recent call last):
File "/Users/neal/PycharmProjects/Read-NMT-DB/Read-NMT-DB.py", line 15, in <module>
KeyConditionExpression=Key('timeStamp').contains('1475413345')
AttributeError: 'Key' object has no attribute 'contains'
Process finished with exit code 1
答
KeyConditionExpressions可以仅限制主(分区和排序)表中的键/指数。如果timeStamp
不是主键,则可以使用FilterExpression筛选与您要查找的时间戳前缀不匹配的键。
为什么包含而不是eq? – jarmod
我试过.eq和相同的问题。我以为我需要使用.contains,因为它是一个字符串。 – Neal
这是我尝试使用.eqKeyConditionExpression = Key('primaryKey')。eq('76fe48e3-88a0-11e6-9479-556298790684') – Neal