Use
print person.display_name.encode('utf-8')
para informar ao Python qual codificação de caracteres deve ser usada para strings unicode.
Eu escrevi este script python para listar todos os nomes de exibição de um membro da equipe no Launchpad:
from launchpadlib.launchpad import Launchpad
cachedir = "/home/username/.launchpadlib/cache/"
launchpad = Launchpad.login_anonymously('just testing', 'production', cachedir)
team = launchpad.people['']
len(team.members)
for person in team.members:
print person.display_name
exit()
Mas quando executo o script em um arquivo de saída, ele falha ao encontrar um nome que não seja ascii:
$ python get_list.py > /tmp/file
Traceback (most recent call last):
File "get_list.py", line 7, in <module>
print person.display_name
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf6' in position 8: ordinal not in range(128)
Alguma idéia?
Use
print person.display_name.encode('utf-8')
para informar ao Python qual codificação de caracteres deve ser usada para strings unicode.