【问题标题】:How to see a large JSON file pretty printed on Ubuntu? [closed]如何在 Ubuntu 上看到漂亮的大型 JSON 文件? [关闭]
【发布时间】:2012-05-29 01:41:56
【问题描述】:

我想听听您关于如何在 Ubuntu 上处理大型 (40MB) JSON 文件的建议。我希望看到它在 vimgedit 或任何其他编辑器中打印得很漂亮。可以找到许多关于如何prettify the JSON 的教程,但是,它们不必处理大量输入。我还想象我可以通过pygments 或任何其他语法高亮显示数据。我很想听听你的想法。

示例下载:

wget -O large-dataset.json http://data.wien.gv.at/daten/wfs?service=WFS&request=GetFeature&version=1.1.0&typeName=ogdwien:BAUMOGD&srsName=EPSG:4326&outputFormat=json

请注意下载大小!


编辑:我发现meld 有点工作。应用程序不会立即加载整个文件,这会阻塞用户界面。而是按顺序读取文件内容。

【问题讨论】:

标签: json ubuntu syntax-highlighting pretty-print


【解决方案1】:

如果您只想可视化(和搜索) json 文件,Firefox 做得很好。我手头没有40MB 文件,但它可以轻松处理 9MB 文件。

只需将 JSON 文件拖到 Firefox 中,或运行:

firefox your_file.json

【讨论】:

  • 记得将文件扩展名保持为.json
【解决方案2】:

jq 是一个轻量级的命令行 JSON 处理器并且运行良好! 为此,您需要使用以下命令安装 jq(如果您使用的是 apt 包管理器)。

sudo apt-get install jq

下面的命令会将漂亮的 json 转换为一个新文件。

 jq '.' non-pretty.json > pretty.json

我们还可以使用 jq 过滤 json,我发现它在处理大型 geojson 文件时非常有用,例如下面的命令将只保存第一个特征的属性。

jq '.features[0].properties' geojson_file.json > pretty.json

希望这会有所帮助!

【讨论】:

  • 我遇到了解决方案python -m json.tool 的 UTF-8 问题。 Firefox 无法打开大文件。但是jq 终于帮了我。
  • 找了半个小时这样的工具,第一个能处理我230MB json文件的,谢谢
  • jq 在接近 json 格式的日志上更加健壮。 python json.tool 可能有点太严格了。
【解决方案3】:

我通常为此使用Sublime Text。这项工作有一个专用插件。

插件Pretty JSON解析选择的JSON内容,并以结构化的方式打印出来。

您只需选择内容并按Ctrl+Alt+j

【讨论】:

    【解决方案4】:
    【解决方案5】:

    Python JSON 的模块也可以做到这一点(python -m json.tool),例如:

    cat myjsonfile.json | python -m json.tool > pretty.json
    

    【讨论】:

    • 甚至比 Sublime 还要快!谢谢 另外,如果您只想预览文件,可以添加 ` | less` 而不是 ` > pretty.json`。
    • 完美运行
    【解决方案6】:

    核心用法是格式化大 json。我用 25MB json 文件测试了 Chrome 扩展 JSON View。它在将其作为本地文件或从网络加载时崩溃。通过崩溃,我的意思是 JSON 不会被格式化,并且在查看 JSON 视图选项时,您将收到一条崩溃消息。我也为 Firefox 尝试了类似的插件。我也尝试过在线 json 格式化程序。

    找到这个库 - jsonpps。从命令行很好地格式化大型 json,获取输入并将格式化的 json 保存为单独的文件,效果很好。也可以保存在同一个文件中(需要可选参数)

    一个缺点,要安装和运行,需要熟悉 Java 和 Maven。

    安装和运行:

    git clone https://github.com/bazaarvoice/jsonpps.git
    mvn clean package
    cd target 
    java -jar jsonpps-1.2-SNAPSHOT.jar -o /path/to/output.json /path/to/largeInput.json
    

    此解决方案不限于 Ubuntu。它应该适用于任何操作系统。

    【讨论】:

      【解决方案7】:

      您有 KDE 或任何其他可视化环境吗?如果是,您是否尝试过使用 chrome 扩展程序 JSONView

      【讨论】:

      • 我在 Ubuntu 10.10 上使用 Gnome。我使用JSON formatter 并尝试了您的建议。当我通过 HTTP 加载 JSON 文件时,两者都工作得很好。但是,当我使用 Chromium 打开文件时,没有应用语法突出显示。奇怪的是,其他应用程序在打开大文件时几乎死机,而 Chromium 在同样的情况下没有问题。
      • 没有。我很高兴 +1,因为 JSONView 似乎比 JSON 格式化程序更快。但是,正如我已经说过的那样,它们并没有解决我的问题。
      • 我还发现了如何格式化本地文件。您必须明确地enable access to local files 扩展。
      猜你喜欢
      • 1970-01-01
      • 2020-06-20
      • 2012-10-08
      • 1970-01-01
      • 1970-01-01
      • 2018-08-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-08
      相关资源
      最近更新 更多