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

如何在pandas中导入并读取多个不同目录下的同名json文件

实现方案

核心思路

使用Python内置的os模块读取父目录下的所有子文件夹名,遍历拼接出完整的json文件路径,循环读取每个文件内容即可。

可直接运行的代码

import os
import json

# 你已定义的变量
path = '/messages/inbox/'
file = '/message_1.json'
# 可选:定义列表存储所有json解析结果
all_msg = []

# 遍历inbox目录下的所有子项
for folder_name in os.listdir(path):
    # 拼接得到完整json路径,用os.path.join更稳妥兼容不同操作系统
    full_path = os.path.join(path, folder_name, file.lstrip('/'))
    # 可选:判断路径是否存在,避免因异常文件导致报错
    if not os.path.exists(full_path):
        continue
    # 读取解析json
    with open(full_path, 'r', encoding='utf-8') as f:
        obj = json.load(f)
    all_msg.append(obj)

原代码问题说明

  • 原for循环的遍历对象可以用os.listdir(path)获取inbox下的所有子文件夹名
  • 原with open语句缩进错误,放在for循环外只会执行一次,仅能读取最后一个路径的文件
  • 原代码open('new_file')给变量加了引号,变成了读取固定名为new_file的文件,而非读取变量存储的路径

可选简化方案(Python3.4+ 推荐)

使用pathlib模块处理路径更简洁:

from pathlib import Path
import json

root = Path('/messages/inbox/')
all_msg = []
# 直接匹配所有子文件夹下的message_1.json文件
for json_file in root.glob('*/message_1.json'):
    with open(json_file, 'r', encoding='utf-8') as f:
        all_msg.append(json.load(f))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:36:04