python3 -m json.tool data/device.json 是一个在命令行中使用 Python 内置工具格式化和验证 JSON 文件的命令。下面详细解释其功能和用法:
命令结构解析
python3 -m json.tool data/device.json
python3:指定使用 Python 3 解释器。-m json.tool:通过-m参数调用 Python 标准库中的json.tool模块(相当于执行json.tool脚本)。data/device.json:待处理的 JSON 文件路径(需替换为实际路径)。
核心功能
-
格式化(美化)JSON
- 将压缩的 JSON 转换为易读的格式(缩进、换行、对齐)。
- 默认使用 4 个空格缩进。
-
验证 JSON 语法
- 检查 JSON 文件是否符合规范(如引号是否成对、逗号是否多余)。
- 若语法错误,会抛出异常并提示具体位置。
使用示例
假设 data/device.json 内容为:
{"name":"router","ip":"192.168.1.1","ports":[80,443,22]}
执行命令后,输出格式化结果:
{
"name": "router",
"ip": "192.168.1.1",
"ports": [
80,
443,
22
]
}
常见参数
-
输出到文件
使用重定向将格式化后的内容保存到新文件:python3 -m json.tool data/device.json > data/device_formatted.json -
直接覆盖原文件
使用--indent指定缩进空格数(如 2 个空格),并结合--sort-keys排序键:python3 -m json.tool --indent 2 --sort-keys data/device.json > tmp.json && mv tmp.json data/device.json -
检查语法(不输出)
若只需验证语法,可将输出丢弃:python3 -m json.tool data/device.json > /dev/null && echo "Valid JSON" || echo "Invalid JSON"
错误处理示例
若 JSON 文件存在语法错误(如缺少引号):
{name: "router"} # 错误:键 "name" 缺少双引号
执行命令会报错:
$ python3 -m json.tool data/device.json
Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
应用场景
- 开发调试:快速查看复杂 JSON 的结构。
- 代码提交前:确保 JSON 格式统一(如 CI/CD 流程中自动验证)。
- 处理 API 响应:美化从服务端获取的 JSON 数据。
替代工具
若需更强大的功能,可使用第三方工具:
jq(Linux/macOS):支持复杂过滤和转换。- VS Code 插件:如 Prettier 或内置 JSON 格式化(
Shift + Alt + F)。
总结
python3 -m json.tool 是 Python 内置的轻量级 JSON 处理工具,无需额外安装,适合快速格式化、验证 JSON 文件。在处理配置文件、API 数据时非常实用。

2602

被折叠的 条评论
为什么被折叠?



