我正试图使用boto3从DynamoDB中查询项目。
表格如下:
DynamoDB表
我运行的代码是:
import boto3
TableName = "lightblue_ble_indication_data"
client = boto3.client('dynamodb')
DB = boto3.resource('dynamodb')
table = DB.Table(TableName)
response = table.get_item(Key={'ble_device_name': "LUMEN18BLE", 'timestamp': "1573742965303"})
response['Item']
我错过了什么?
错误消息告诉您传递的键{'ble_device_name': "LUMEN18BLE", 'timestamp': "1573742965303"}
与表的架构(即为其定义的键(不匹配。这意味着名称ble_device_name
或timestamp
与该表的实际键属性不匹配,或者您为它们选择的值的类型不正确。
您所附的图像证明ble_device_name
或timestamp
是正确的关键属性名称,所以这不是问题所在。它还显示了ble_device_name
在传递时有一个字符串类型。剩下的唯一可能性是,您为timestamp
传递了一个字符串,而在表中,它被声明为一个数字。您只需要在试图传递时间戳的值1573742965303
周围加引号,一切都应该正常。