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

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

作者: 阳春是你 | 来源:发表于2017-02-16 17:39 被阅读317次

在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类型

相关文章

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/ejehwttx.html