如何按需清空test.json文件并写入合法JSON新数据?
清空并覆盖写入test.json文件的方法
以下是几种主流编程语言/工具的实现方式,核心都是通过写模式直接覆盖文件,自动清空原有内容并写入合法JSON数据:
Python实现
利用json模块确保写入内容为合法JSON,'w'模式打开文件会自动清空原有内容:
import json # 准备要写入的新JSON数据(可按需修改) new_json_data = [ { "data_on": { "vals_e": "updated_e", "vals_o": "updated_o" }, "data_off": { "vals_d": "updated_d" } } ] # 清空文件并写入新数据 with open('test.json', 'w', encoding='utf-8') as file: json.dump(new_json_data, file, indent=2)
indent=2用于格式化输出JSON,方便阅读,可根据需求省略。with语句会自动处理文件关闭,避免资源泄漏。
Node.js实现
使用内置fs模块的写方法,默认写模式会覆盖清空原文件:
const fs = require('fs'); // 准备新的JSON数据 const newJsonData = [ { "data_on": { "vals_e": "updated_e", "vals_o": "updated_o" }, "data_off": { "vals_d": "updated_d" } } ]; // 异步写入(推荐,不阻塞主线程) fs.writeFile('./test.json', JSON.stringify(newJsonData, null, 2), 'utf8', (err) => { if (err) throw err; console.log('test.json已更新'); }); // 同步写入(适合简单场景) // fs.writeFileSync('./test.json', JSON.stringify(newJsonData, null, 2), 'utf8');
JSON.stringify的第二个参数null用于过滤字段(这里不需要),第三个参数2用于格式化缩进。
Shell脚本实现(Linux/macOS/WSL)
通过重定向符号>直接覆盖文件,自动清空原有内容:
# 直接写入格式化的合法JSON echo '[ { "data_on": { "vals_e": "updated_e", "vals_o": "updated_o" }, "data_off": { "vals_d": "updated_d" } } ]' > test.json # 也可以从其他合法JSON文件读取内容覆盖写入 # cat new_content.json > test.json
关键注意事项
- 所有方法的核心是写模式,无需额外执行清空文件的操作,写模式会自动覆盖原有内容。
- 必须确保写入的内容是合法JSON:字符串用双引号、数组/对象结构闭合、无语法错误,否则生成的test.json会无法被JSON解析工具识别。
内容的提问来源于stack exchange,提问作者user21354060
相关产品推荐
相关产品推荐

