如何使用Python批量加载多个JSON文件并逐次读取执行操作
修正后实现代码及说明
# 先导入需要的依赖模块 import os import json def main(): # 你的JSON文件所在根目录 path = r'C:\Work\metadata' # 遍历目录下所有文件 for root, _, files in os.walk(path, topdown=True): for f in files: # 只处理后缀匹配的JSON文件 if f.endswith("_metameta.json"): full_path = os.path.join(root, f) try: # 指定utf-8编码打开,避免中文乱码问题 with open(full_path, 'r', encoding='utf-8') as fp: data = json.load(fp) # -------------------------- # 这里写你要对每个文件执行的操作 # 示例:print(f"处理文件:{full_path},文件内字段:{list(data.keys())}") # -------------------------- except json.JSONDecodeError: print(f"文件{full_path}格式错误,无法解析为JSON") except Exception as e: print(f"处理文件{full_path}时出错:{str(e)}") if __name__ == "__main__": main()
调整说明
- 补充了
os、json模块的导入,解决模块未找到的运行报错 - 删除了没用的
m = os.listdir(path)冗余代码,os.walk本身就会递归遍历根目录下所有子目录的文件 - 把后缀判断从全路径改成了文件名
f,逻辑更准确,避免路径中刚好包含对应后缀的误判情况 - 打开文件时添加了
encoding='utf-8'参数,解决Windows系统默认编码和JSON文件通用编码不兼容导致的乱码、解码报错问题 - 增加了异常捕获逻辑,遇到格式错误的JSON文件或者其他读取问题不会导致整个程序直接崩溃,会打印错误提示后继续处理其他文件
- 补充了Python脚本标准入口判断
if __name__ == "__main__":,符合通用开发规范
内容的提问来源于stack exchange,提问作者Prajakta Bagde
相关产品推荐
相关产品推荐

