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

如何解决json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)报错

问题根因

你的报错核心是文件指针偏移问题:

  • 执行f.read()时会一次性读取文件全部内容,同时文件读取指针会移动到文件末尾
  • 后续调用json.load(f)时会从当前指针位置(即文件末尾)读取内容,拿到的是空值,因此触发JSON解析错误,提示第1行第1列不存在合法的JSON值,和你的JSON文件内容本身无关。
修复方案

方案1:移除调试用的打印逻辑

如果不需要打印文件内容,直接调用json.load读取即可:

import json
with open("items.json", 'r', encoding='utf-8') as f:
    items = json.load(f)

方案2:保留打印逻辑的话重置文件指针

如果需要保留打印文件内容的逻辑,读完后调用f.seek(0)把指针移回文件起始位置再解析:

import json
with open("items.json", 'r', encoding='utf-8') as f:
    print(f.read())
    # 重置文件指针到开头
    f.seek(0)
    items = json.load(f)
其他可选排查点

如果修改后仍报错,可检查以下情况:

  • 确认你打开的文件路径正确,没有读取到其他目录下的空JSON文件
  • 若你的JSON文件是UTF-8 BOM编码格式,把打开文件的编码参数改为encoding='utf-8-sig'即可兼容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 13:33:02