Sublime Text 不支持 JSON 转 CSV 原生功能,因其仅作文本处理、无法解析结构;推荐用 ConvertJson 插件(轻量、离线、支持扁平化)或自定义 Python 构建系统实现可控转换。

Sublime Text 本身不支持一键将 JSON 转 CSV,没有内置命令或快捷键能直接完成该转换;必须借助插件或外部工具配合实现。
为什么 Sublime 不能原生转 JSON → CSV
Sublime 是纯文本编辑器,不解析数据结构。它把 json 当作普通字符串处理,无法自动识别对象/数组嵌套、字段对齐、转义规则(如含逗号、换行的字段)等 CSV 规范要求。强行用正则或列编辑“硬转”,极易损坏数据。
推荐方案:安装 ConvertJson 插件(轻量、离线、支持扁平化)
这是目前 Sublime 上最接近“一键”的可行路径,专为 JSON→CSV 设计,支持基础嵌套展开:
- 通过
Package Control: Install Package搜索并安装ConvertJson - 打开合法 JSON 文件(必须是数组形式,如
[{"name":"a","score":90}],单个对象会报错) - 选中全部内容(
Ctrl+A/Cmd+A),右键 →Convert JSON to CSV - 结果默认以逗号分隔,空值转为空字符串,嵌套对象会被展开为
user.name形式(可配置)
注意:ConvertJson 不处理深层嵌套数组(如 "tags": ["x", "y"]),会直接转成 "[\"x\",\"y\"]" 字符串,需提前预处理。
更可靠的方式:用 Python 脚本 + Sublime 构建系统(适合复杂 JSON)
当 JSON 含多层嵌套、数组字段、需自定义映射时,硬靠插件容易翻车。建议写一个极简脚本,通过 Sublime 的 Build System 触发:
- 新建文件,保存为
json2csv.py,内容如下:
import json
import csv
import sys
with open(sys.argv[1]) as f:
data = json.load(f)
if isinstance(data, dict):
data = [data]
with open(sys.argv[1].replace('.json', '.csv'), 'w', newline='') as f:
if data:
writer = csv.DictWriter(f, fieldnames=data[0].keys())
writer.writeheader()
writer.writerows(data)
- 在 Sublime 中:Tools → Build System → New Build System,粘贴:
{
"cmd": ["python", "/path/to/json2csv.py", "$file"],
"selector": "source.json",
"file_regex": "^(...*?):([0-9]+):([0-9]+):? (.*)$"
}
- 保存为
JSON2CSV.sublime-build,切换到该构建系统,按Ctrl+B即生成同名 CSV
这个方式可控性强,字段顺序、空值处理、数组展开逻辑都可自行编码控制——而插件做不到这点。
真正麻烦的不是“怎么点”,而是 JSON 结构是否规整。扁平数组好办,带混合类型、深层嵌套、不一致 key 的 JSON,无论用插件还是脚本,都得先人工判断结构再决定怎么 flatten,这步绕不开。










