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

Python中基于指定列合并多JSON文件并去重的简便方法

合并多JSON文件并按userid去重的简便方法

你可以直接用Python脚本一次性完成**读取多个JSON文件、合并数据、按userid去重(保留最后出现的条目)**的操作,无需手动合并文件。以下是优化后的实现:

完整代码

import json
from pathlib import Path

# 替换为你的目标JSON文件路径,支持多个文件
input_files = ["第一个JSON文件.json", "第二个JSON文件.json"]
# 若要匹配当前目录下所有JSON文件,可替换为:
# input_files = list(Path(".").glob("*.json"))

# 用字典存储去重后的用户数据,userid作为唯一键
user_map = {}

for file_path in input_files:
    with open(file_path, 'r', encoding='utf-8') as f:
        file_data = json.load(f)
        for user in file_data:
            # 重复userid会自动覆盖为最后一次出现的条目,符合你的示例需求
            user_map[user['userid']] = user

# 将字典转换为列表格式
unique_user_list = list(user_map.values())

# 写入最终结果文件
with open('合并去重后的结果.json', 'w', encoding='utf-8') as out_file:
    json.dump(unique_user_list, out_file, indent=4, ensure_ascii=False)

关键说明

  • 自动处理多文件:脚本会遍历你指定的所有JSON文件,无需手动提前合并
  • 去重逻辑适配:默认保留最后一次出现的重复userid条目(和你的示例输出一致);如果需要保留第一次出现的条目,只需修改遍历部分的代码:
    for user in file_data:
        if user['userid'] not in user_map:
            user_map[user['userid']] = user
    
  • 字符编码兼容:ensure_ascii=False确保输出文件能正确保留非ASCII字符(比如示例中的特殊名称)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 13:34:53