¿Cómo puedo resolver TypeError con StringIO en Python 2.7?

Intentando leer la siguiente cadena como archivo usando StringIO pero obteniendo el siguiente error. ¿Cómo puedo resolverlo?

 >> from io import StringIO >>> >>> datastring = StringIO("""\ ... Country Metric 2011 2012 2013 2014 ... USA GDP 7 4 0 2 ... USA Pop. 2 3 0 3 ... GB GDP 8 7 0 7 ... GB Pop. 2 6 0 0 ... FR GDP 5 0 0 1 ... FR Pop. 1 1 0 5 ... """) Traceback (most recent call last): File "", line 9, in  TypeError: initial_value must be unicode or None, not str 

Puede resolver el error simplemente agregando au antes de su cadena para hacer que la cadena sea unicode:

 datastring = StringIO(u"""\ Country Metric 2011 2012 2013 2014 USA GDP 7 4 0 2 USA Pop. 2 3 0 3 GB GDP 8 7 0 7 GB Pop. 2 6 0 0 FR GDP 5 0 0 1 FR Pop. 1 1 0 5 """) 

Su valor inicial debe ser Unicode .

Más bien uso (soluciona este problema exacto para mí):

 from StringIO import StringIO