You need to enable JavaScript to run this app. Python3.6 Spyder运行AI聊天bot报JSONDecodeError: Expecting value错误
优惠活动
大模型
产品
解决方案
定价
更多

Python3.6 Spyder运行AI聊天bot报JSONDecodeError: Expecting value错误

JSONDecodeError: Expecting value 排查方案

这个报错的核心触发原因是:json.load()从磁盘读到的文件内容,不是有效的可解析JSON格式。结合你当前的代码和配置场景,可以按以下顺序排查解决:

  • 第一步:确认实际读取的文件不是空文件/错误路径的文件
    你代码中用相对路径open('intents.json')打开文件时,Python不会自动从脚本所在目录找文件,而是从代码运行时的「当前工作目录」定位文件。如果路径不匹配,很可能读到了系统中其他位置的空同名文件(这类文件大小为0字节,自然没法被JSON解析器识别)。
    可以在json解析前加几行验证代码,定位实际读取的文件:
    import os
    current_working_dir = os.getcwd()
    target_file_path = os.path.join(current_working_dir, 'intents.json')
    print(f"当前工作目录: {current_working_dir}")
    print(f"尝试读取的文件路径: {target_file_path}")
    print(f"读取文件的大小: {os.path.getsize(target_file_path)} 字节")
    
    如果打印出的文件大小为0,说明你定位错了文件,把正确的intents.json内容写入这个路径下的文件即可。
  • 第二步:解决文件编码兼容问题
    Python3.6在Windows环境下默认用系统本地GBK编码读文件,如果你的intents.json是用UTF-8(尤其是带BOM头的UTF-8)编码保存的,开头的不可见BOM字符会被当成JSON内容,直接触发解析错误。
    修正打开文件的代码,显式指定兼容的编码:
    # 用utf-8-sig编码可以自动跳过文件开头的BOM字符,避免解析错误
    with open('intents.json', encoding='utf-8-sig') as file:
        data = json.load(file)
    
  • 第三步:排查实际磁盘文件的隐性语法错误
    你贴出的intents.json内容本身是符合JSON语法要求的,但实际保存到磁盘的文件可能因为编辑器自动修改、粘贴时误操作,存在以下隐性问题:
    • 全角中文引号替代了半角英文引号
    • 遗漏了JSON结构要求的逗号、闭合括号
    • 混入了不可见的控制字符
      可以在读取文件后,先打印原始内容的前20个字符,确认没有乱码、没有奇怪的开头字符,再做解析。

内容的提问来源于stack exchange,提问作者Mech no.44

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.10 09:54:04