将字典写入json文件python,其中的中文变成unicode编码

问题描述

复制代码
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))
相关推荐
Petrichor_H_几秒前
DAY 43 复习日
开发语言·python
BoBoZz193 分钟前
OrientedArrow 在两个随机生成的点之间绘制一根带箭头的线,以可视化一个向量
python·vtk·图形渲染·图形处理
代码游侠4 分钟前
数据结构——线性表
linux·c语言·数据结构·学习·算法
蒋士峰DBA修行之路5 分钟前
红帽练习环境介绍
linux·开发语言·bash
。TAT。6 分钟前
进程间通信-对匿名管道的学习
linux·学习
m0_738120728 分钟前
渗透测试——Kioptrix5靶机渗透测试详细教程
网络·python·安全·web安全·ssh
2301_807583239 分钟前
Linux-虚拟化技术概述及KVM虚拟机环境部署
linux·运维·服务器
z***948410 分钟前
Java进阶07 嵌套类
java·开发语言·python
HalvmånEver11 分钟前
Linux:命令行参数与环境变量(进程五)
linux·运维·服务器
python百炼成钢12 分钟前
43.Linux LCD驱动
java·linux·运维·驱动开发