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

如何按需清空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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 10:42:14