问题描述
import json
data = {
'牡丹花开':'asfffa',
'asdfg' : '处处闻啼鸟',
'夜来风' : 56789,
'asdga':'花儿与少年'
}
fp = open('./train.json', 'w', encoding = 'utf-8')
fp.write(json.dumps(data))
fp.close()
文件中的内容如下:
{"\u6625\u6653\u6625\u7720": "asfffa", "asdfg": "\u5904\u5904\u95fb\u557c\u9e1f", "\u591c\u6765\u98ce": 56789, "asdga": "\u4e0d\u89c9\u6653\u96e8\u58f0"}
原因分析
json.dumps()方法将dict的数据转换为str数据,然后将str写入到文本中,但是json.dumps()方法会默认将其中unicode码以ascii编码的方式输入到string。
解决办法
在json.dumps()方法中加入一个参数,并把值设置为False(默认为True),即可显示中文。
fp.write(json.dumps(data,ensure_ascii=False))