Python3中的json.dumps后,中文為Unicode編碼問(wèn)題處理

一、原因

  • Python3 已經(jīng)將Unicode作為默認(rèn)編碼,進(jìn)行操作;
  • Python3 中的json在做dumps操作時(shí),會(huì)將中文自動(dòng)轉(zhuǎn)換成Unicode編碼,然后再做逆向操作時(shí),會(huì)將Unicode編碼重新轉(zhuǎn)換回中文。

二、解決方案

  • Python3中,json.dumps中有一個(gè)參數(shù):ensure_ascii,可以對(duì)自動(dòng)轉(zhuǎn)換操作進(jìn)行控制,該參數(shù)默認(rèn)值為T(mén)rue,所以進(jìn)行dumps時(shí)如果無(wú)此參數(shù),就默認(rèn)進(jìn)行轉(zhuǎn)換。在后面加上該參數(shù),并設(shè)置為False,該自動(dòng)轉(zhuǎn)換就被停止,就可以正常顯示中文了
  • 舉個(gè)栗子:
# 未加參數(shù):ensure_ascii
a = {'name': '張三', 'age': 14, 'grade_name': '三年級(jí)'}
a = json.dumps(a)
打印的結(jié)果:{"name": "\u5f20\u4e09", "age": 14, "grade_name": "\u4e09\u5e74\u7ea7"}

# 加上參數(shù):ensure_ascii=False
b = {'name': '張三', 'age': 14, 'grade_name': '三年級(jí)'}
b = json.dumps(b, ensure_ascii=False)
打印的結(jié)果:{"name": "張三", "age": 14, "grade_name": "三年級(jí)"}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過(guò)簡(jiǎn)信或評(píng)論聯(lián)系作者。

友情鏈接更多精彩內(nèi)容