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

如何在Python中正确合并多个同结构JSON文件

合并同结构JSON文件并移除指定字段的Python方案

核心思路

直接读取每个JSON文件,提取其中的数据条目数组,合并所有数组后写入新的JSON文件,自动实现连续索引(列表天然的顺序就是连续的,若需显式索引字段可手动添加),同时忽略原文件中的status和total字段。

代码实现

1. 基础版(处理指定文件)

如果明确知道要合并的文件名,可直接逐个读取:

import json

# 定义读取并提取数据的函数
def get_json_entries(file_path):
    with open(file_path, 'r', encoding='utf-8') as f:
        content = json.load(f)
    # 替换为你JSON中存储数据条目的实际键名(比如'results')
    return content.get('data', [])

# 读取两个文件的数据并合并
file1_data = get_json_entries('file1.json')
file2_data = get_json_entries('file2.json')
merged_entries = file1_data + file2_data

# 若需给条目添加从1开始的显式索引字段
for idx, entry in enumerate(merged_entries, start=1):
    entry['index'] = idx

# 写入合并后的JSON文件
with open('merged_result.json', 'w', encoding='utf-8') as f:
    json.dump(merged_entries, f, indent=2, ensure_ascii=False)

2. 扩展版(支持批量文件)

后续要处理更多同结构文件时,用glob批量匹配JSON文件更高效:

import json
import glob

def get_json_entries(file_path):
    with open(file_path, 'r', encoding='utf-8') as f:
        content = json.load(f)
    return content.get('data', [])

# 匹配当前目录下所有JSON文件(可根据需求修改路径)
all_json_files = glob.glob('./path/to/json/files/*.json')

merged_entries = []
for file in all_json_files:
    merged_entries.extend(get_json_entries(file))

# 可选:添加显式连续索引
for idx, entry in enumerate(merged_entries, start=1):
    entry['index'] = idx

# 保存结果
with open('merged_result.json', 'w', encoding='utf-8') as f:
    json.dump(merged_entries, f, indent=2, ensure_ascii=False)

关键说明

  • 键名替换:务必将代码中的'data'替换为你实际JSON文件中存储数据条目的键名(比如你的文件里可能是'properties'或'results')。
  • 索引处理:列表本身的索引就是连续的(从0开始),如果不需要显式的索引字段,可直接跳过enumerate循环部分。
  • 避免格式问题:直接用json模块处理原生JSON结构,比pandas更适合保留嵌套字段的完整性,不会出现结构变形或顺序错乱的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 14:54:08