Not able to get_item from AWS dynamodb using python?
<p>I am new to dynamodb trying to get data from dynamodb.</p>

<p><a href="https://i.stack.imgur.com/GVoXN.jpg" rel="noreferrer">This is my table with "topic" as a primary hash key</a></p>

<p>my python code</p>

<pre><code>import boto3 
from boto3 import dynamodb 

from boto3.session import Session

from boto3.dynamodb.conditions import Key, Attr


dynamodb_session = Session(aws_access_key_id='XXXXXXXXXXXXXXX',
          aws_secret_access_key='XXXXXXXXXXXXXXXXXXXXXXXXXXXX',
          region_name='us-east-1')

dynamodb = dynamodb_session.resource('dynamodb')

table=dynamodb.Table('Garbage_collector_table')

my_topic = "$aws/things/garbage_collector_thing/shadow/update/accepted"

response = table.get_item(TableName='Garbage_collector_table', Key={'topic':my_topic})

for res in response: 
    print "result ",res
</code></pre>

<p>I am getting the following error</p>

<pre><code>Traceback (most recent call last):
 File "get-data-dynamodb-boto3.py", line 19, in &lt;module&gt;
    response = table.get_item(TableName='Garbage_collector_table', Key={'topic': my_topic})   File
 "/usr/local/lib/python2.7/dist-packages/boto3/resources/factory.py",
 line 518, in do_action
     response = action(self, *args, **kwargs)   File "/usr/local/lib/python2.7/dist-packages/boto3/resources/action.py",
 line 83, in __call__
     response = getattr(parent.meta.client, operation_name)(**params)   File "/usr/local/lib/python2.7/dist-packages/botocore/client.py", line
 258, in _api_call
     return self._make_api_call(operation_name, kwargs)   File /usr/local/lib/python2.7/dist-packages/botocore/client.py", line 548,
 in _make_api_call
     raise ClientError(parsed_response, operation_name)
</code></pre>

<blockquote>
  <p>botocore.exceptions.ClientError: An error occurred
  (ValidationException) when calling the GetItem operation: The provided
  key element does not match the schema</p>
</blockquote>

<p>am I missing anything in my code?</p>