1. 程式人生 > 程式設計 >解決json中ensure_ascii=False的問題

解決json中ensure_ascii=False的問題

在使用json.dumps時要注意一個問題

>>> import json
>>> print json.dumps('中國')
"\u4e2d\u56fd"

輸出的會是:'中國' 中的ascii 字元碼,而不是真正的中文。

這是因為json.dumps 序列化時對中文預設使用的ascii編碼.想輸出真正的中文需要指定ensure_ascii=False:

>>> import json
>>> print json.dumps('中國')
"\u4e2d\u56fd"
>>> print json.dumps('中國',ensure_ascii=False)
"中國"
>>> 

補充知識:python json.loads json.dumps(ensure_ascii = False) 漢字亂碼問題解決

我們在post請求資料時,響應的內容是json資料,但是返回的json資料中文顯示有問題,變成 \uXXX的形式。這是因為中文以 unicode 編碼了,而預設是以ASCII解析的,中文不在ASCII編碼中,所以無法顯示。

這時候我們可以用 import json 然後呼叫json.loads() 和json.dumps()來使中文正確顯示。 下面的程式碼(data是中文不能正常顯示的json串,newjson是處理後中文正常顯示的字串)

import json
myjson=json.loads(data) #data是向 api請求的響應資料,data必須是字串型別的
newjson=json.dumps(myjson,ensure_ascii=False) #ensure_ascii=False 就不會用 ASCII 編碼,中文就可以正常顯示了

以上這篇解決json中ensure_ascii=False的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。