What does "u" mean before a string in python?
The character, the python string prefix, is called the String Encoding python declaration. Here you can read all about them: https://docs.python.org/3.3/reference/lexical_analysis.html#encoding-declarations
u means unicode. Alternate letters in this slot may be r'foobar' for the raw string and b'foobar' for the byte string.
Some help Python thinks is unicode: http://docs.python.org/howto/unicode.html
Then, to study the nature of this, run the following command:
type(u'abc')
returns:
<type 'unicode'>
If you use Unicode, when you must use ascii or ascii, when you must use Unicode, you will most likely encounter the implementation of the introduction of bubbles when users begin to "explore the Unicode space" at runtime.
For example, if you pass a unicode string to the facebook function api.fql(...) , which says that it accepts unicode, it will successfully process your request and then return undefined results, as if the function was successful, since it runs everything over the carpet.
As defined in this post:
Python multiscreen fql crashes using unicode query
Unicode is a mine-filled battlefield that keeps it in quarantine because it is a hostile user input virus that will be used as a mule and transfer medium for order 66, which will automatically destroy sequences in a chain of commands. You have been warned.
These are barbarians who enter the ditch with Unicode, you should be ready for all of them, and each 3 tuples of them: 
About 3% of the above characters will lead to the fact that your code in production will have an attack, and then warm across the floor.