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)

posted on 2017-09-28 09:08  vhills  阅读(637)  评论(0编辑  收藏  举报