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

如何使用Python将目录下多个JSON文件合并为单个有效JSON文件

合并多个JSON文件为单个有效JSON的Python优化方案

首先,咱们先明确你的需求:你要把当前目录下所有.json文件里的键值对合并成一个单独的有效JSON对象,保存到本地,而且要确保最终JSON里最后一个键值对没有多余的逗号。

先看你写的代码,它其实只是在遍历文件并打印内容,还没实现合并和写入的核心功能,而且把多个语句挤在一行的写法可读性也不太好,咱们来优化一下:

优化后的解决方案

import glob
import json

# 初始化空字典,用来存放所有合并后的键值对
merged_data = {}

# 遍历当前目录下所有.json文件
for file_path in glob.glob("*.json"):
    with open(file_path, 'r', encoding='utf-8') as f:
        # 直接加载整个文件的JSON数据,比逐行读取更可靠
        file_content = json.load(f)
        # 把当前文件的键值对合并到总字典里(重复键会被后面的文件覆盖)
        merged_data.update(file_content)

# 将合并后的结果写入新文件
with open('merged_result.json', 'w', encoding='utf-8') as output_file:
    # json.dump会自动处理格式,确保最后一个键值对没有多余逗号
    json.dump(merged_data, output_file, separators=(',', ': '))

为什么这个方案更好?

  • 更高效可靠:用json.load()直接解析整个JSON文件,避免了逐行读取可能遇到的格式问题(比如JSON内容换行、多空格等),Python的json模块会帮你处理所有合法的JSON格式。
  • 简洁易读:拆分了逻辑步骤,用明确的变量名和注释,后续维护起来更方便,也更适合你学习调试。
  • 自动处理格式:json.dump()的separators参数可以生成紧凑的JSON格式,而且完全符合你要求的“最后一个键值对无逗号”——它会自动判断键值对的位置,不会在最后一个后面加多余的逗号。
  • 合理处理重复键:如果不同文件里有相同的键,update()方法会用后面文件的值覆盖前面的,这是这类合并场景下的常规逻辑,如果你需要保留所有重复键的话,可以再调整逻辑。

对比原代码的不足

你的原代码只是在打印文件列表和内容,没有完成合并和写入的核心任务;而且把多个语句写在一行(比如import glob; files=[];...)虽然能运行,但可读性很差,不利于你理解代码逻辑和后续调试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 14:12:45