[PYTHON] Sortie d'une liste de chaînes Unicode

S'il s'agit d'une liste, il essaiera d'utiliser la fonction str, donc Imprimez sur l'élément ou attribuez un format au type unicode à imprimer. C'est gênant lorsque le nombre d'éléments augmente.

Site référencé: Connaître Python UnicodeEncodeError

# -*- coding:utf-8 -*-
#Vérifiez la valeur par défaut qui apparaît sur le site ci-dessus.
import sys, codecs
#Pour une raison quelconque, celui de la ligne suivante peut ne pas passer. Est-ce un problème de version?#sys.stdout = codecs.EncodedFile(sys.stdout, 'utf_8')
sys.stdout = codecs.lookup(u'utf_8')[-1](sys.stdout)
print "sys.getdefaultencoding() => ",sys.getdefaultencoding()
print "sys.stdout.encoding => ",sys.stdout.encoding

#Test à partir d'ici

alist = [ u"Unicode japonais", u"C'est vrai"]

for st in alist :
    print st

print u"{0}{1}".format(*alist)

print map(str,alist)

Ce qui suit est la sortie.

sys.getdefaultencoding() =>  ascii
sys.stdout.encoding =>  UTF-8
Unicode japonais
C'est vrai
C'est du japonais Unicode
---------------------------------------------------------------------------
UnicodeEncodeError                        Traceback (most recent call last)
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/IPython/utils/py3compat.pyc in execfile(fname, *where)
    202             else:
    203                 filename = fname
--> 204             __builtin__.execfile(filename, *where)

/Users/yuuichi/test-print/test.py in <module>()
     15 print u"{0}{1}".format(*alist)
     16
---> 17 print map(str,alist)

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-7: ordinal not in range(128)

Recommended Posts

Sortie d'une liste de chaînes Unicode
Lignes de sortie contenant la chaîne spécifiée
Sortie de la liste du vendredi Premium 2017 en Python
numpy> Sortie de liste aléatoire> zip () / print%
Conversion de chaîne d'une liste contenant des nombres
Joindre les éléments de la liste sans «». (Récupérer la chaîne de la liste sans '')