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

多次调用pd.read_json读取JSON文件时报ValueError的原因是什么

错误原因

该报错并非因为多次调用pd.read_json方法导致,触发ValueError: Expected object or value的核心原因是第二个待读取的test2.json存在异常,常见异常场景如下:

  • 文件路径拼写错误:检查路径中的Python Pratice是否和实际文件夹名一致(注意正确拼写为Practice,大概率是手误拼写错误导致找不到目标文件),或test2.json已被移动、删除
  • test2.json为空文件:文件中无任何内容,无法解析出有效JSON对象
  • test2.json格式不合法:存在语法错误(如引号不配对、末尾多余逗号)、文件编码不符合预期(如带BOM头的UTF-8编码)
  • 权限不足:当前执行Python脚本的用户没有test2.json的读取权限
解决步骤
  1. 首先验证文件路径有效性,执行如下代码确认文件状态:
import os
test2_path = '/Users/pmall/Desktop/Python Pratice/test2.json'
# 输出True说明路径正确、文件存在
print("文件是否存在:", os.path.exists(test2_path))
# 输出为0说明文件为空
print("文件大小(字节):", os.path.getsize(test2_path))
  1. 若文件存在且非空,先用Python内置json模块校验文件格式合法性:
import json
with open(test2_path, 'r', encoding='utf-8') as f:
    try:
        json_data = json.load(f)
        print("JSON格式合法,内容预览:", json_data[:2] if isinstance(json_data, list) else json_data)
    except Exception as e:
        print("JSON格式错误:", e)

如果这一步提示格式错误,直接根据报错修正test2.json的语法即可。
3. 根据JSON的存储格式调整读取参数:

  • 如果是带BOM的UTF-8编码文件,添加编码参数:
df2 = pd.read_json(test2_path, encoding='utf-8-sig')
  • 如果文件是每行存储一个独立JSON对象的多行格式,添加行模式参数:
df2 = pd.read_json(test2_path, lines=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:48:03