Sublime如何一键将JSON转为CSV_Sublime数据格式转换技巧【技巧】

2次阅读

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

Sublime如何一键将JSON转为CSV_Sublime数据格式转换技巧【技巧】

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,这步绕不开。

text=ZqhQzanResources