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

如何解决在SQLite DB Browser中导出查询结果为JSON格式时的语法错误问题?

问题解决指南

你遇到的错误有两个关键原因:

  • 你在SQLite DB Browser的「执行SQL」标签中输入了终端shell命令(sqlite3 peds.db ...),但这个窗口仅支持纯SQL语句,无法识别shell命令,因此触发syntax error near "sqlite3"。
  • FOR JSON AUTO是SQL Server专属的语法,SQLite并不支持该写法,即便去掉shell命令,这条SQL也会报错。

下面是三种可行的解决方案,按操作复杂度排序:

方案1:用DB Browser内置导出功能(最省心)

完全不需要写SQL,通过可视化操作就能导出JSON:

  • 打开peds.db数据库后,切换到「浏览数据」标签,选中dx_graph表
  • 点击顶部菜单栏「文件」→「导出」→「表数据到JSON文件」
  • 在导出设置窗口中,勾选你需要的字段(startn, rel, endn, desc, priority, finding, explanation),指定保存路径后完成导出。

方案2:在「执行SQL」标签中用SQLite原生JSON函数生成结果

SQLite 3.33.0及以上版本支持JSON构造函数,你可以用以下SQL生成符合要求的JSON数组:

SELECT json_group_array(
    json_object(
        'startn', startn,
        'rel', rel,
        'endn', endn,
        'desc', "desc",  -- 注意`desc`是SQL保留关键字,必须用双引号包裹
        'priority', priority,
        'finding', finding,
        'explanation', explanation
    )
) AS json_result
FROM dx_graph;

执行后,结果面板会显示一个完整的JSON数组,你可以直接复制内容保存为.json文件。

方案3:用终端命令行执行(适合熟悉命令行的场景)

如果你想用最初的命令行思路,需要在系统终端(Windows命令提示符、macOS/Linux终端)中执行,而不是DB Browser的SQL窗口:

sqlite3 peds.db '.mode json' '.once out.json' 'SELECT startn, rel, endn, "desc", priority, finding, explanation FROM dx_graph;'

这里去掉了FOR JSON AUTO,因为SQLite的.mode json参数会自动将查询结果格式化为标准JSON数组。

内容的提问来源于stack exchange,提问作者that_javascript_girl

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 17:39:06