boto3:Table.get_item 不返回项目

Tsu*_*asa 7 amazon-web-services amazon-dynamodb boto3

我在本地计算机上执行此代码。

import boto3
boto3.resource('dynamodb').Table('table_name').get_item(Key={'id': 'id'})
Run Code Online (Sandbox Code Playgroud)

它返回这个。

{'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}}
Run Code Online (Sandbox Code Playgroud)

如何使用 boto3 从 dynamodb 获取项目?

Chr*_*ams 8

GetItem 的预期响应应类似于以下语法。

{
    'Item': {
        'AlbumTitle': {
            'S': 'Songs About Life',
        },
        'Artist': {
            'S': 'Acme Band',
        },
        'SongTitle': {
            'S': 'Happy Day',
        },
    },
    'ResponseMetadata': {
        '...': '...',
    },
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到ResponseMetadata的,它返回了 200,这表明对 DynamoDB 的请求确实成功,但没有带有 keyid的值的项目id

您应该验证传入的值是否是真实的 ID 值。