在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)
{"asdf": "我們的python學習"}
注意上面的兩個參數 我的經驗:
要是已經有dict,還好。我是從mongo中拿,所以需要Json.loads,但總是有問題。所以這個方案不適合我。
如果是字串,直接輸出或者
print str.encode("UTF-8")
對於其他的編碼同樣使用。趕快試試吧。
在編輯一個別人的方案。未經驗證。
all_symptom內容
[python] view plaincopy在CODE上查看代碼片派生到My Code片
[u'\u773c', u'\u8179\u90e8', u'\u4e94\u5b98', u'\u53e3\u8154', u'\u8179\u90e8',
u'\u53e3\u8154']
[python] view plaincopy在CODE上查看代碼片派生到My Code片
str_symptom = str(all_symptom).replace("u\'","\'")
str_symptom.decode("unicode-escape") 我的經驗
這個方案是我後來使用的方案,不確定效率。但是可行。我的答案是 str_symptom.decode("unicode-escape").encode("utf-8"). 在用unicode解碼完事後,用utf-8編碼。