Python sys.setdefaultencoding('utf-8') 后就没输出
为了解决Python的 UnicodeDecodeError: 'ascii' codec can't decode byte ,我们可以加入以下代码。
import sys reload(sys) sys.setdefaultencoding('utf-8')
但是在编辑的时候发现,普通的输出却不见了,如图 print 1都没反应。
查资料后解决,原来reload(sys)的时候,sys.stdout 这个参数被重置为了ipython 的对象,导致无法输出。因此可以用以下代码代替
import sys stdo = sys.stdout reload(sys) sys.setdefaultencoding('utf-8') sys.stdout= stdo
在python 下面一个包含中文字符串的列表(list)或字典,直接使用print会出现以下的结果:
dict = {"asdf": "我们的python学习"}
print dict
{'asdf': '\xe6\x88\x91\xe4\xbb\xac\xe7\x9a\x84python\xe5\xad\xa6\xe4\xb9\xa0'}
在输出处理好的数据结构的时候很不方便,需要使用以下方法进行输出:
import json
print json.dumps(dict, encoding="UTF-8", ensure_ascii=False)