title: Python: why does str() on some text from a UTF-8 file give a UnicodeDecodeError?
body: <p>I'm processing a UTF-8 file in Python, and have used simplejson to load it into a dictionary. However, I'm getting a UnicodeDecodeError when I try to turn one of the dictionary values into a string:</p>
  
  <pre><code>f = open('my_json.json', 'r')
  master_dictionary = json.load(f)
  #some json wrangling, then it fails on this line...
  mysql_string += " ('" + str(v_dict['code'])
  Traceback (most recent call last):
    File "my_file.py", line 25, in &lt;module&gt;
      str(v_dict['code']) + "'), "
  UnicodeEncodeError: 'ascii' codec can't encode character u'\xf4' in position 35: ordinal not in range(128)
  </code></pre>
  
  <p>Why is Python even using ASCII? I thought it used UTF-8 by default, and the input is from a UTF-8 file. </p>
  
  <pre><code>$ file my_json.json 
  my_json.json: UTF-8 Unicode English text
  </code></pre>
  
  <p>What is the problem?</p>