You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python加载JSON文件时遭遇UnicodeDecodeError错误的求助

Python加载JSON文件时遭遇UnicodeDecodeError错误的求助

嘿,刚接触Python和JSON就碰到编码问题确实挺闹心的!我来帮你捋清楚问题出在哪,以及怎么解决:

你遇到的UnicodeDecodeError本质是你的JSON文件实际编码不是UTF-8,但Python默认用UTF-8去解码,所以碰到0xcc这种不符合UTF-8规则的字节就直接报错了。下面给你几个实用的解决办法:

方法1:尝试指定常见编码打开文件

很多非UTF-8的文件会用latin-1、gbk或者cp1252这类编码,你可以挨个试试:

import json
# 先试试latin-1编码
with open("test11.json", "r", encoding="latin-1") as file:
    data = json.load(file)
    print(data)

如果上面的代码不行,把encoding="latin-1"换成encoding="gbk"再试一次。

方法2:检测文件真实编码(更靠谱)

要是不确定文件到底是什么编码,可以用chardet库来检测,步骤如下:

  1. 先安装chardet:
pip install chardet
  1. 运行检测代码:
import chardet
# 用二进制模式读取文件,避免编码干扰
with open("test11.json", "rb") as f:
    detect_result = chardet.detect(f.read())
print("文件检测到的编码是:", detect_result['encoding'])

拿到检测出的编码后,把它放到open函数的encoding参数里,就能正常读取文件了。

方法3:应急忽略错误(不推荐)

如果只是临时想读取数据,不想纠结编码细节,可以用errors参数跳过错误字符,但这种方法可能会丢失部分数据,尽量只在万不得已的时候用:

with open("test11.json", "r", errors="ignore") as file:
    data = json.load(file)

另外提一句,你最终想把JSON数据存到数据库的话,其实可以用pandas简化流程:用pd.read_json()读取数据(同样可以指定编码),然后直接用df.to_sql()写入数据库,比手动转字典再建表要高效很多,等你解决了编码问题可以试试~

备注:内容来源于stack exchange,提问作者Winrol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 10:27:59