(已解决)python读写含中文的json文件时报错或中文显示不正常如“\u56db“ 及 ubuntu系统中用gedit打开json中文显示乱码

博客介绍了在Python中处理含有中文的JSON文件时遇到的读写问题,包括UnicodeDecodeError错误和中文显示为乱码的解决办法。对于Ubuntu系统中gedit编辑器打开JSON文件中文乱码的问题,提供了两种解决方案,涉及修改gedit的编码设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、 python读json文件(含中文)报错

报错:UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xcb in position 8: invalid continuation byte

解决方法:

读文件时 encoding=‘gbk’

json_file = 'try.json'
with open(json_file, "r", encoding='gbk') as file:
    json_data = json.load(file)

2、 python写json文件后中文显示乱码

问题描述:中文显示为英文地址,如“\u56db"
问题原因:json dump 时 ensure_ascii为True时,所有非ASCII码字符显示为\uXXXX序列

解决方法:

json dump 时 ensure_ascii=False

new_dict = {'我':5, '你':4}  # 要写入json的字典
new_json_file = 'new.json'  # 要写入的json文件名
json_str = json.dumps(new_dict, indent=4, ensure_ascii=False)
with open(new_json_file, 'w', encoding='gbk') as json_file:
    json_file.write(json_str)

3、Ubuntu系统 gedit打开json文件时中文显示为乱码

(参考 ubuntu wikiCSDN
Gedit 3.x 版本设置 (适用于Ubuntu 11.10及以后)

2种方法均可:

(1)命令方式:

gsettings set org.gnome.gedit.preferences.encodings auto-detected "['GB18030', 'UTF-8', 'CURRENT', 'ISO-8859-15', 'UTF-16']"

(2)图形方式:

sudo apt install dconf-editor
dconf-editor

展开/org/gnome/gedit/preferences/encodings,把“candidate-encodings”的值改为:

['GB18030', 'UTF-8', 'CURRENT', 'ISO-8859-15', 'UTF-16']
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值