Amazon dynamodb 带数字键的boto3 dynamodb查询

Amazon dynamodb 带数字键的boto3 dynamodb查询,amazon-dynamodb,boto3,Amazon Dynamodb,Boto3,我试图在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_ac

我试图在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']))
导入boto3
从boto3.dynamodb.conditions导入键Attr
dynamodb=boto3.资源('dynamodb',区域名称='us-east-1',
aws\u访问\u密钥\u id=“”,
aws_secret_access_key='')
表=发电机表('site_logging')
response=table.query(
KeyConditionExpression=Key('schema_name').eq(''),
FilterExpression=Key('appid')。等式(11510)
)
打印(答复)
打印('Response items{}'。格式(Response['items']))
但这将返回0个结果

如果我将FilterExpression更改为另一个键,例如
Key('appname').eq('call')
,我会得到大量响应。所以我的访问应该是好的

有一些“appid”值将返回结果,因此我知道该部分的拼写是正确的:-)

如果我将
.eq(11510)
更改为
.gt(11510)
我会得到结果,但不会得到11510。在我得到的返回值中,我可以在上面尝试
.eq
,然后得到一个结果


因此,通常情况下,情况似乎正常,但我没有得到在AWS控制台中看到的结果。

对于给定的模式名称,appid=11510似乎不存在。希望你现在找到了,还没弄明白。当我进入AWS上的DynamoDB时,我可以使用正确的schema_名称和appid 11510进行查询,我看到两个结果。我发现令人困惑的是,我在AWS控制台中看到了结果,但没有看到上面查询的结果。啊,我相信我现在已经解决了<代码>单个查询或扫描操作最多可以检索1 MB的数据。此限制在对结果应用任何FilterExpression之前适用。我在KeyConditionExpression`&Key('datetime').gt('2017-01-11 00:00:00')`上添加了第二个键,现在我将返回这两个结果。看起来对于给定的架构名称,appid=11510不存在。希望你现在找到了,还没弄明白。当我进入AWS上的DynamoDB时,我可以使用正确的schema_名称和appid 11510进行查询,我看到两个结果。我发现令人困惑的是,我在AWS控制台中看到了结果,但没有看到上面查询的结果。啊,我相信我现在已经解决了<代码>单个查询或扫描操作最多可以检索1 MB的数据。此限制在对结果应用任何FilterExpression之前适用。我在KeyConditionExpression`&Key('datetime').gt('2017-01-11 00:00:00')上添加了第二个键,现在我将返回这两个结果。