boto3:Table.get_item 没有 return 项
boto3: Table.get_item doesn't return items
我在本地机器上执行这段代码。
import boto3
boto3.resource('dynamodb').Table('table_name').get_item(Key={'id': 'id'})
它returns这个。
{'ResponseMetadata': {'RequestId': 'xxxxxxxxxxxxxxxxxxxxxxxxxxx',
'HTTPStatusCode': 200,
'HTTPHeaders': {'server': 'Server',
'date': 'Sat, 29 Aug 2020 08:23:07 GMT',
'content-type': 'application/x-amz-json-1.0',
'content-length': '2',
'connection': 'keep-alive',
'x-amzn-requestid': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'x-amz-crc32': 'xxxxxxxxxxxxxxxxxx'},
'RetryAttempts': 0}}
我如何使用 boto3 从 dynamodb 获取项目?
GetItem 的预期响应应类似于以下语法。
{
'Item': {
'AlbumTitle': {
'S': 'Songs About Life',
},
'Artist': {
'S': 'Acme Band',
},
'SongTitle': {
'S': 'Happy Day',
},
},
'ResponseMetadata': {
'...': '...',
},
}
因为您有 ResponseMetadata
并且它返回了 200,这表明对 DynamoDB 的请求确实成功了,但是没有带有键 id
的项目的值为 id
。
您应该验证传入的值是真实的 ID 值。
我在本地机器上执行这段代码。
import boto3
boto3.resource('dynamodb').Table('table_name').get_item(Key={'id': 'id'})
它returns这个。
{'ResponseMetadata': {'RequestId': 'xxxxxxxxxxxxxxxxxxxxxxxxxxx',
'HTTPStatusCode': 200,
'HTTPHeaders': {'server': 'Server',
'date': 'Sat, 29 Aug 2020 08:23:07 GMT',
'content-type': 'application/x-amz-json-1.0',
'content-length': '2',
'connection': 'keep-alive',
'x-amzn-requestid': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'x-amz-crc32': 'xxxxxxxxxxxxxxxxxx'},
'RetryAttempts': 0}}
我如何使用 boto3 从 dynamodb 获取项目?
GetItem 的预期响应应类似于以下语法。
{
'Item': {
'AlbumTitle': {
'S': 'Songs About Life',
},
'Artist': {
'S': 'Acme Band',
},
'SongTitle': {
'S': 'Happy Day',
},
},
'ResponseMetadata': {
'...': '...',
},
}
因为您有 ResponseMetadata
并且它返回了 200,这表明对 DynamoDB 的请求确实成功了,但是没有带有键 id
的项目的值为 id
。
您应该验证传入的值是真实的 ID 值。