BOTO3仅返回仅返回DynamoDB表中的部分数据

时间:2019-07-17 00:21:47

标签: python-3.x amazon-dynamodb boto3

我有一个相对简单的DynamoDB表,该表具有一个日期字符串作为分区键,一个名称作为排序键,以及一个JSON文档的文本表示作为名为Document的属性。

我正在用以下代码查询它:

dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('SolarData')

response = table.get_item(
    Key={'StartDate': '2019-07-08', 'InverterName': 'Inverter1'},
)

print(response)

我遇到的问题是响应仅包含Document的前10K字节,大约50K字节长。

我知道整个文档数据都已存储,因为我可以在AWS控制台中看到它,也可以通过以下命令从CLI中进行get-item:

aws dynamodb get-item --table-name SolarData --key "{""StartDate"":{""S"":""2019-07-10""},""InverterName"":{""S"":""Inverter1""}}"

我将整个文档写到输出中。因此,我认为问题出在我的代码中,例如我没有正确处理响应,或者BOTO3中存在错误。

我搜索了BOTO3 GitHub项目上的问题列表,但没有发现与此相关的任何内容。

1 个答案:

答案 0 :(得分:1)

如果您的响应中有数据,那么结果应该是带有“ Item”键的数据结构。测试该密钥。

由于您能够打印出一些结果,并且在查阅了文档之后,如果可以的话,我会尝试在REPL进行自省。

item = response['Item']
dir(item)
len(item)
print(json.dumps(item, indent=4))

我发现这些检查可以帮助我了解不熟悉的API返回的内容。