将字典写入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))
相关推荐
FreeSoar16 小时前
linux 安装 docker报错处理
linux·运维·docker
随风@飘扬6 小时前
Linux下安装libmodbus库
linux·modbus
bleach-6 小时前
文件描述符及Linux下利用反弹shell的各种方法
linux·websocket·web安全·网络安全·系统安全·信息与通信
皓空揽月7 小时前
Ubuntu 单机安装 Hadoop 3.2.4教程
linux·hadoop·ubuntu
_F_y7 小时前
Linux:简易进程池编写
linux
uxiang_blog7 小时前
如何使用U盘在Windows电脑上按装Fedora43 KDE?
linux·windows·重装系统·fedora43
奈何不吃鱼7 小时前
【安装配置教程】在linux部署java项目
java·linux·intellij-idea·jar
噔噔噔噔@7 小时前
详细介绍Python+Pytest+BDD+Playwright,用FSM打造高效测试框架
开发语言·python·pytest
Ivy_belief7 小时前
Linux:设置和获取单片机gpio引脚和key值
linux·arm开发·qt·gpio·event事件
山南有清风7 小时前
开源对象存储项目一览
linux·分布式·对象存储·存储