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