Python 3.x BOTO3仅从DynamoDB表返回部分数据

Python 3.x BOTO3仅从DynamoDB表返回部分数据,python-3.x,amazon-dynamodb,boto3,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'}, )

我有一个相对简单的DynamoDB表,其中日期字符串作为分区键,名称作为排序键,JSON文档的文本表示形式作为名为document的属性

我用以下代码查询它:

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

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

print(response)
我遇到的问题是,响应只有文档的前10K字节,大约50K字节长

我知道整个文档数据都存储在AWS控制台中,并且如果我使用以下命令从CLI执行get项目:

aws dynamodb get-item --table-name SolarData --key "{""StartDate"":{""S"":""2019-07-10""},""InverterName"":{""S"":""Inverter1""}}"
我将整个文档写入输出。所以我认为问题要么在我的代码中,比如我没有正确处理响应,要么在BOTO3中存在错误


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

如果您的响应中有数据,则结果应该是一个带有“Item”键的数据结构。测试一下那把钥匙

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

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

我发现这些检查帮助我了解从一个不熟悉的API返回的内容

我检查了文档,他们做了:item=response['item']-->打印(item)。我会检查长度,看看响应是否是某种类型的数据结构。响应['Item']表现出相同的行为。输出中只有第一部分。@mgrollins这不是问题,但打印(len(response['Item']['Document'])是有用的。它打印了41910!所以我认为真正的问题在于Python的print()函数,它必须对打印字符串的长度有一定的限制。如果你想把它作为一个答案,我会接受的,因为你的提示让我解决了这个问题。太好了@jwh20!我会贴出来的,谢谢!