python2.7中文的显示,写入文件时候的编码问题

在python2.7中,将中文的字符串,写入文件,会报如下错误

Traceback (most recent call last):
  File "/Users/u01/workspace/statistics/scroll.py", line 42, in print_page
    f.write(content+'\n')
UnicodeEncodeError: 'ascii' codec can't encode characters in position 26-35: ordinal not in range(128)

错误意为,python无法使用ascii编码不在其范围内的字符。

如果要将中文写入文件,如果是unicode类型,可以将其使用"utf-8"编码为str类型content.encode('utf-8'),然后再写入文件。

so = hit["_source"]
print type(so)  # dict类型
content = json.dumps(so)  
print type(content)  # str类型
content = json.dumps(so, ensure_ascii=False) 
print type(content)  # unicode
content = content.encode('utf-8')
print type(content)  # str

json.dumps 加上ensure_ascii=False参数后,结果没有使用ascii编码,而是使用unicode编码的,所以结果是unicode类型

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容