2016-04-14 34 views
1

イベントと呼ばれるテーブルがあり、deviceIDが主キー、timeStampがソートキーです。boto - スキーマの不一致により削除が失敗する

dynamodb = boto3.resource('dynamodb') 
events_table = dynamodb.Table('Events') 

events_table.delete_item(
    Key = { 
     'deviceID' : 'xyz123', 
     'timeStamp' : 12314156.54345 
    } 
) 

は、なぜ私は、スキーマの不一致エラーを取得しています:今、私はこれらのキーの両方与えられた項目を削除しようとしていますか?

File "C:\Python27\lib\site-packages\boto3\resources\factory.py", line 498, in do_action 
response = action(self, *args, **kwargs) 
File "C:\Python27\lib\site-packages\boto3\resources\action.py", line 83, in __call__ 
response = getattr(parent.meta.client, operation_name)(**params) 
File "C:\Python27\lib\site-packages\botocore\client.py", line 236, in _api_call 
return self._make_api_call(operation_name, kwargs) 
File "C:\Python27\lib\site-packages\botocore\client.py", line 500, in _make_api_call 
raise ClientError(parsed_response, operation_name) 
botocore.exceptions.ClientError: An error occurred (ValidationException) when calling the DeleteItem operation: 
The provided key element does not match the schema 

答えて

1

応じdocumentationへ::出力以下

client = boto3.client('dynamodb') 

client.delete_item(TableName='tbl_name', 
    Key={ 
     'deviceID':{'S':'xyz123'}, 
     'timeStamp' : '12314156.54345' 
    }) 
+0

しかし、私はテーブルリソースを使用している、いないクライアントのリソース:http://boto3.readthedocs.org/en/latest/reference/ services/dynamodb.html#DynamoDB.Table.delete_item –

+0

なぜクライアントを使用していないのですか? –

+0

私はそれは可能ですが、それはクライアントでテーブル名を指定し、 'S'プレフィックスを文字列に追加するという事実の他に、同じことをすることになっているとは思いませんか? –

関連する問題