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
相关产品推荐
相关产品推荐

