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

Python实现从JSON文件中删除指定名称的Tag字段

嘿,我来给你分享两种实用的方法,帮你快速完成这个JSON标签过滤的需求——不管你用Python还是Node.js都能轻松实现:

方法一:用Python处理

Python的json模块原生就支持JSON的读写和处理,代码逻辑直白易懂:

import json

# 先定义好要排除的name列表
exclude_names = ['Name2', 'Name4']

# 读取原始JSON文件
with open('input.json', 'r') as input_file:
    json_data = json.load(input_file)

# 过滤tags数组:只保留name不在排除列表里的元素
json_data['tags'] = [tag for tag in json_data['tags'] if tag['name'] not in exclude_names]

# 把处理后的结果写入新的JSON文件,indent=4让输出格式更美观
with open('output.json', 'w') as output_file:
    json.dump(json_data, output_file, indent=4)

简单解释:

  • 先把JSON文件加载成Python字典对象,方便我们操作数据
  • 用列表推导式快速过滤tags数组,剔除掉不符合要求的项
  • 最后把处理好的字典转成JSON格式写入新文件,indent=4是为了让输出的JSON结构更清晰,方便阅读
方法二:用Node.js处理

如果平时更习惯用JavaScript,Node.js的文件操作API也能搞定这个需求,这里用异步写法更符合Node.js的风格:

const fs = require('fs').promises;
const path = require('path');

async function filterTagsFromJson() {
    // 定义要排除的name集合,查询效率比数组更高
    const excludeNames = new Set(['Name2', 'Name4']);
    // 读取源JSON文件
    const rawContent = await fs.readFile(path.join(__dirname, 'input.json'), 'utf8');
    const jsonData = JSON.parse(rawContent);
    
    // 过滤tags:排除掉name在集合里的元素
    jsonData.tags = jsonData.tags.filter(tag => !excludeNames.has(tag.name));
    
    // 写入处理后的JSON文件,JSON.stringify的参数用来格式化输出
    await fs.writeFile(path.join(__dirname, 'output.json'), JSON.stringify(jsonData, null, 4));
    console.log('JSON处理完成,结果已写入output.json!');
}

// 执行函数并捕获可能的错误
filterTagsFromJson().catch(error => console.error('处理过程中出错了:', error));

简单解释:

  • 用Set存储要排除的name,长列表场景下查询效率会比普通数组更高
  • 异步读取文件后解析成JS对象,用filter方法快速筛选符合要求的标签
  • 最后把处理后的对象转成格式化的JSON字符串写入新文件

注意事项

不管用哪种方法,记得把代码里的input.json换成你实际的源文件路径,output.json换成你想要输出的文件路径,同时调整排除列表为你需要删除的name值就可以啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 20:27:53