将字典写入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))
相关推荐
wdfk_prog5 分钟前
[Linux]学习笔记系列 -- [drivers][clk]clk
linux·笔记·学习
b2077216 分钟前
Flutter for OpenHarmony 身体健康状况记录App实战 - 提醒设置实现
python·flutter·macos·cocoa·harmonyos
遇见火星8 分钟前
在Linux中使用journalctl命令进行日志分析和管理详细教程
linux·运维·服务器·journalctl
2301_8223650311 分钟前
数据分析与科学计算
jvm·数据库·python
河北小博博13 分钟前
分布式系统稳定性基石:熔断与限流的深度解析(附Python实战)
java·开发语言·python
xuefuhe15 分钟前
RHEL9 yum install etcd Error: Unable to find a match: etcd
linux·运维·centos
黄连升17 分钟前
Python学习第二天,系统学习基础
python·学习
西红市杰出青年23 分钟前
CSS 选择器详细教程:原理、语法、方向/“轴”与实战
css·python
tudficdew23 分钟前
使用Flask快速搭建轻量级Web应用
jvm·数据库·python
爱学习的阿磊31 分钟前
使用XGBoost赢得Kaggle比赛
jvm·数据库·python