在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編碼不在其范圍內(nèi)的字符赚窃。
如果要將中文寫入文件,如果是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
參數(shù)后虑鼎,結(jié)果沒有使用ascii編碼辱匿,而是使用unicode編碼的,所以結(jié)果是unicode類型