一、問題描述
import json dir = { '春曉':'asfffa', '春眠不覺曉' : '處處聞啼鳥', '夜來風雨聲' : 56789, 'asdga':'asdasda' } fp = open('G:/aa.json', 'w') fp.write(json.dumps(dir)) fp.close()
上邊這段代碼把字典轉為json后,寫入json文件中。當打開json文件時,會發現里邊的中文全都變成Unicode編碼,如下所示
{"\u6625\u6653": "asfffa", "\u6625\u7720\u4e0d\u89c9\u6653": "\u5904\u5904\u95fb\u557c\u9e1f", "\u591c\u6765\u98ce\u96e8\u58f0": 56789, "asdga": "asdasda"}
二、原因
為什么數據導出時,中文會變成Unicode編碼?
json.dumps()方法將dict的數據轉換為string數據,然后將string寫入到文本中,但是json.dumps()方法會默認將其中unicode碼以ascii編碼的方式輸入到string。
三、解決辦法
在json.dumps()方法中加入一個參數,並把值設置為False(默認為True)
fp.write(json.dumps(dir,ensure_ascii=False))
設置了這個參數后,完美解決
