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

Python加载JSON文件时遭遇JSONDecodeError问题求助

解决JSONDecodeError的排查步骤

嘿,我之前也碰到过一模一样的JSON解析报错情况!咱们一步步来排查解决:

先纠正你代码里的一个小错误

你尝试的d = json.load(f).decode('utf-8')是有问题的——json.load(f)已经直接把文件里的JSON内容解析成Python的字典/列表对象了,不是字符串,所以根本不需要调用decode()方法,这反而会引发额外的错误。

常见报错原因&对应解决办法

下面是几个最容易导致JSONDecodeError的原因,你可以逐一排查:

  • JSON文件本身有语法问题
    JSON对格式要求很严格:必须用双引号包裹键和字符串、不能有末尾多余的逗号、不支持//或/* */这类注释。你可以先把文件内容读出来打印看看:

    with open("entvpndeviceusage.json", "r", encoding="utf-8") as f:
        content = f.read()
        print(content)
    

    肉眼检查有没有明显的语法错误,或者用本地的JSON校验工具确认文件有效性。

  • 文件编码不匹配
    Windows下默认的文件编码可能不是UTF-8,如果你的JSON文件是用其他编码(比如带BOM的UTF-8、GBK)保存的,直接读取会导致内容乱码,进而解析失败。试试指定编码打开:

    import json
    # 常规UTF-8文件
    with open("entvpndeviceusage.json", "r", encoding="utf-8") as f:
        d = json.load(f)
    # 如果是带BOM的UTF-8文件(Windows常出现)
    with open("entvpndeviceusage.json", "r", encoding="utf-8-sig") as f:
        d = json.load(f)
    # 如果是GBK编码
    with open("entvpndeviceusage.json", "r", encoding="gbk") as f:
        d = json.load(f)
    
  • 文件为空或内容不完整
    检查下你的entvpndeviceusage.json文件大小,如果是0字节,或者内容被截断了,那肯定会触发解析错误。这种情况需要确认文件是否被正确生成或下载。

按照这些步骤排查,应该能找到问题所在!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:18:19