title: AWS BotoCore Error - An AttributeValue may not contain an empty string
body: <p>I'm trying to fill a DynamoDB database with data from an old event store 
  made out of a PostgreSQL database. After it ran through a good portion of the db entries, this error was thrown when attempting to call the <code>put_item</code> function.</p>
  
  <p>botocore.exceptions.ClientError:-</p>
  
  <blockquote>
    <p>An error occurred (ValidationException) when calling the PutItem operation: One or more parameter values were invalid: An AttributeValue may not contain an empty string</p>
  </blockquote>
  
  <p>I decided to rerun the code and see what was happening by dumping out all of the table attributes right before it was inserted. </p>
  
  <p>I can see the only "empty string" is in the <code>answer_string</code> attribute of a dictionary, called <code>details</code>, see below:-</p>
  
  <pre><code>Importing event type 5 completed by user: 1933
  1933 5 {'answer': {'difficulty': 1, 'answer_string': ''}, 'card_id': n 
  '13448', 'review_id': '153339', 'time_spent': 2431}
  62 153339
  2017-01-18 00:46:48.373009+00:00 2017-01-18 00:46:48.364217+00:00
  </code></pre>
  
  <p>I'm pretty certain this is what's causing the error to be thrown, as none of the other table attributes are incorrect. </p>
  
  <p>My problem is the <code>details</code> dictionary can come from dozens of different locations and each <code>details</code> dictionary can have different attributes - the one with the <code>answer_string</code> attribute is just one of many possible dictionary configurations. I can't possibly check for all possible configurations of a dictionary and verify that they all don't have empty strings. </p>
  
  <p>Is there a way I can do a one time overall check on a dictionary and see if any one part of it is empty?</p>