我正在尝试对dynamodb进行一个相当简单的查询。当我进入AWS控制台时,我可以使用appid(Number)= 11510设置查询,我得到两个结果(如预期的那样)。
我想要的是能够使用boto3。
import boto3
from boto3.dynamodb.conditions import Key, Attr
dynamodb = boto3.resource('dynamodb', region_name='us-east-1',
aws_access_key_id='<deleted>',
aws_secret_access_key='<deleted>')
table = dynamodb.Table('site_logging')
response = table.query(
KeyConditionExpression=Key('schema_name').eq('<schema>'),
FilterExpression=Key('appid').eq(11510)
)
print(response)
print('Response items {}'.format(response['Items']))
但这会返回0结果。
如果我将FilterExpression更改为另一个Key,例如Key('appname').eq('call')
,我会收到大量回复。所以我的访问应该很好。
有一些“appid”值会返回结果,所以我知道该部分的拼写是正确的: - )。
如果我将.eq(11510)
更改为.gt(11510)
,我会得到结果,但不会得到11510.在我得到的结果中,我可以尝试使用.eq
并获得结果。
因此,通常情况似乎有效,但我没有得到我在AWS控制台中看到的结果。