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

Python遍历目录读取多个JSON文件报ValueError解决方法

报错根因
  • os.listdir() 方法的返回值本身就是指定目录下所有条目名称的字符串列表,这是API的固定设计,不属于异常。
  • 遍历拿到的只是文件名,没有拼接Datasets/目录前缀,pd.read_json()会默认在当前脚本的运行工作目录下查找对应文件,根本读不到目标目录里的JSON文件;如果目录下混有非JSON格式的文件(比如系统隐藏文件.DS_Store、临时缓存文件),直接读取也会触发ValueError: Expected object or value解析错误。
  • 单独读取单个文件能成功,本质是传入的路径能被程序正确定位到目标JSON文件,和遍历场景下的路径定位逻辑不一致。
修复代码
import os
import pandas as pd

dataset_dir = "Datasets/"
all_dfs = []

for file_name in os.listdir(dataset_dir):
    # 过滤非JSON格式文件,避免无效读取
    if file_name.endswith(".json"):
        # 拼接目录和文件名,生成完整可访问的文件路径
        full_file_path = os.path.join(dataset_dir, file_name)
        df = pd.read_json(full_file_path)
        all_dfs.append(df)

# 若需要合并所有JSON文件的数据为单个DataFrame,执行下面这行即可
# combined_df = pd.concat(all_dfs, ignore_index=True)
额外注意事项
  • 如果你的JSON文件是每行一个JSON对象的行存储格式,需要给pd.read_json()传入lines=True参数,否则会出现解析报错。
  • 若不确定当前脚本工作目录,可以执行print(os.getcwd())打印路径核对,相对路径容易出错的场景下可以直接传入文件的绝对路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 12:25:00