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

Colab中json.load指定utf-8仍报UnicodeDecodeError的解决咨询

Colab读取含非ASCII字符JSON文件编码错误的解决方案

1. 先确认文件实际编码格式

有时候文件并非UTF-8编码(比如GBK、ISO-8859-1等),可以通过chardet库检测:

  • 未安装chardet的话先执行:!pip install chardet
  • 运行检测代码:
import chardet

with open("你的JSON文件名.json", "rb") as f:
    result = chardet.detect(f.read())

print(result["encoding"])

用检测出的编码替换json.load的encoding参数,比如检测结果是ISO-8859-1,就写json.load(f, encoding="ISO-8859-1")

2. 手动指定编码打开文件后再加载

有时候json.load的encoding参数可能不生效,换一种方式:先以指定编码打开文件读取内容,再用json.loads解析:

import json

with open("你的JSON文件名.json", "r", encoding="utf-8") as f:
    content = f.read()
data = json.loads(content)

如果检测到其他编码,替换这里的encoding值即可。

3. 应急处理:忽略或替换错误字符(不推荐)

如果编码检测没结果,可临时用错误处理参数跳过或替换无法解码的字符(会丢失部分数据,慎用):

import json

# 忽略错误字符
with open("你的JSON文件名.json", "r", encoding="utf-8", errors="ignore") as f:
    data = json.load(f)

# 或替换为占位符
with open("你的JSON文件名.json", "r", encoding="utf-8", errors="replace") as f:
    data = json.load(f)

4. 检查文件上传/存储环节

如果是上传到Colab的文件,可能上传过程中编码被篡改:

  • 重新上传前,确保本地文件保存时用的是UTF-8编码(在本地编辑器的保存设置里确认)
  • 在Colab终端用!file -i 你的JSON文件名.json命令查看文件编码信息

内容的提问来源于stack exchange,提问作者Vitto

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 18:12:42