如何在 Linux 終端上漂亮地列印 JSON 文件

2020-12-14 51cto

如何在 Linux 終端上漂亮地列印 JSON 文件

JSON 文件非常棒,因為它們以人類可讀的格式存儲數據集合。然而,如果 JSON 文件被最小化過,那麼閱讀 JSON 文件可能會很痛苦。

作者:Abhishek Prakash來源:Linux中國|2020-12-13 14:00

JSON 文件非常棒,因為它們以人類可讀的格式存儲數據集合。然而,如果 JSON 文件被最小化過,那麼閱讀 JSON 文件可能會很痛苦。

以這個為例:

Minified JSON is difficult to read

計算機可以很容易地讀取它。即使是人也能讀,但如果 JSON 文件以合適的格式顯示,那麼閱讀就會簡單很多。我的意思是 JSON 文件應該是這樣讀的:

Pretty Printed JSON is easier to read

你可以使用大多數的文本編輯器和一些插件以合適的格式顯示它。然而,如果你在終端中,或者你想在你的 shell 腳本中這麼做,事情會有所不同。

如果你有一個已最小化過的 JSON 文件,讓我來告訴你如何在 Linux 終端中漂亮地輸出它。

jq 是一個命令行 JSON 處理器。你可以用它來切分、過濾、映射和轉換結構化數據。我在這裡不打算詳細介紹 jq 命令行工具的使用。

要使用 jq,你需要先安裝它。你可以使用你的發行版的包管理器來安裝它。如果啟用了 universe 倉庫,你可以使用 apt 命令在 Ubuntu 上安裝它:

  1. sudo apt install jq

安裝好後,用下面的方法在顯示屏上漂亮地列印 JSON 文件:

  1. jq . sample.json

Pretty printed JSON file

你可能也想用 cat,但我認為 cat 在這裡沒用。

  1. cat sample.json | jq

請記住,上述命令不會影響原始 JSON 文件。不會向它寫入任何更改。

你可能已經知道如何在 Linux 中把命令輸出重定向到一個文件。你可能也知道不能重定向到同一個文件,而且 tee 命令也不能保證一直有效。

如果你想用漂亮的格式修改原來的 JSON 文件,可以把解析後的輸出結果用管道傳送到一個新的文件中,然後覆蓋原來的 JSON 文件。

  1. jq . sample.json > pretty.json

Pretty printing JSON file in Linux Terminal

讓我們反過來,對一個格式良好的 JSON 文件進行最小化。要最小化 JSON 文件,你可以使用選項 -c

  1. jq -c < pretty.json

Minified JSON file display

如果你願意,你也可以使用 cat 和重定向:

  1. cat pretty.json | jq -c

你更有可能是在系統中安裝了 Python。如果是這樣的話,你可以用它在終端漂亮地列印 JSON 文件:

  1. python3 -m json.tool sample.json

Pretty printing JSON with Python

我知道還有其他方法可以解析 JSON 文件並以適當的格式列印出來。你可以自己去探索,但這兩種方法足以完成漂亮地列印 JSON 文件的工作。

【編輯推薦】

【責任編輯:

龐桂玉

TEL:(010)68476606】

點讚 0

相關焦點

  • 使用cat命令在Linux中組合文本文件
    然後可以將合併的文本保存到另一個文本文件中。 在本教程中,您將學習如何使用cat命令將兩個或多個文件中的文本合併為一個文件。 這將幫助您從普通初學者獲得Ubuntu上的高級用戶狀態。 我們在Ubuntu 18.04 LTS系統上運行了本教程中提到的命令。
  • 神奇|神奇,原來 Linux 終端下還有這兩種下載文件方式
    我是小小,今天開始本周的第二篇,本周第二篇,將會著重講解關於Linux下的兩種文件下載方式。前言如果你一直使用 Linux 終端,比如在伺服器上,如何從終端下載文件,在本篇文章中,你將會學到如何從 Linux 終端下下載文件。
  • 【python】讀取json文件
    最近要打個比賽,在處理數據的時候,發現數據竟然是json文件的,於是上網查了下,展示給大家O.O作者Bigberghttps://www.cnblogs.com/bigberg/p/6430095json dumps把數據類型轉換成字符串 dump把數據類型轉換成字符串並存儲在文件中  loads把字符串轉換成數據類型  load把文件打開從字符串轉換成數據類型json是可以在不同語言之間交換數據的,而pickle只在python之間使用。
  • 如何在 Ubuntu Linux 中使用 RAR 文件 | Linux 中國
    但相比之下 7-zip 能提供了更好的壓縮率,並且默認情況下還可以在多個平臺上輕鬆支持 Zip 文件。不過 RAR 仍然是最流行的歸檔格式之一。然而 Ubuntu[2] 自帶的歸檔管理器卻不支持提取 RAR 文件,也不允許創建 RAR 文件。辦法總比問題多。只要安裝 unrar 這款由 RARLAB[3] 提供的免費軟體,就能在 Ubuntu 上支持提取 RAR 文件了。
  • 如何使用Python 和 Pandas讀寫JSON文件
    在這篇文章中,我們將學習如何使用Python讀寫JSON文件。在第一部分中,我們將使用Python包json來創建一個JSON文件並寫入一個JSON文件。在下一部分中,我們將使用Pandas的 json方法將JSON文件加載到Pandas 數據幀中。在這裡,我們將學習如何從本地和一個URL讀取JSON文件,以及如何使用Pandas讀取一個嵌套的JSON文件。最後,作為獎勵,我們還將學習如何操作Pandas數據幀中的數據、重命名列和使用Seaborn對數據繪製圖表。什麼是JSON文件?
  • Linux教程之Linux mkdir 創建文件夾命令
    Linux教程之Linux mkdir 創建文件夾命令 Linux(Ubuntu/Fedora/CentOS/RetHat)可以通過GMONE和KDE界面直接創建文件夾和文件目錄。當然,有時候直接通過終端用 mkdir 命令來創建會更方便,特別是在Root權限的文件夾和目錄中......
  • python讀寫json文件
    6741810096, "q20_rate":0.980488, "q30_rate":0.941583, "read1_mean_length":149, "read2_mean_length":149, "gc_content":0.46685 }    } }上述文件截取自
  • 幫你精通Linux:簡約卻不簡單的ls命令
    1.只列出當前的目錄文件我們先從一個具體的問題出發,如何單單列印出目錄文件。如果使用find命令,不僅簡單,而且符合完全語義化的表達:$ find . 2.只列出當前的文件那麼如何單單列出來當前的文件呢?最簡單的方法還是 find 命令的語義化查詢:$ find . -maxdepth 1 -type f -iname "[^.]
  • 嘗試將 Jed 作為你的 Linux 終端文本編輯器|Linux 中國
    導讀:Jed 方便的下拉菜單,讓新用戶可以輕鬆地使用終端文本編輯器。                       首先,下載S 語言(Jed 的編寫語言)並安裝(其中 請替換為對應的版本號): 安裝好後,對Jed 源碼也同樣操作(其中 請替換為對應的版本號): 啟動 Jed Jed 在終端中運行,所以要啟動它,只需打開終端,輸入 : 如何使用 Jed
  • 如何在Linux終端中複製和粘貼文本、文件和文件夾
    複製和粘貼是計算機上最常用的操作之一。使用Ctrl+ C和Ctrl+ V鍵盤快捷鍵很容易做到,但是在Linux終端上卻不是那麼簡單。您有幾種選擇可以完成工作。這是在Linux終端中複製和粘貼文本,文件和目錄的方法。複製和粘貼文字如果您只想在終端中複製一段文本,您要做的就是用滑鼠突出顯示該文本,然後按Ctrl+ Shift+ C進行複製。
  • 在 Linux 終端中展示幻燈片
    • 來源:linux.cn • 作者:Abhishek Prakash • 譯者:geekpi •(本文字數:1644,閱讀時長大約:2 分鐘)演示文稿往往是枯燥的。Present:Linux 終端中進行演示在終端中可以做很多 有趣好玩的事情 。製作和展示幻燈片只是其中之一。
  • 生成labelme能查看的json格式文件
    那如何用labelme查看呢?今天這篇文章就介紹,如何生成能labelme直接打開的json文件。本文閱讀大約需要2min,但建議收藏,動手實踐之。1.保存四邊形矩形框bbox標註信息任意四邊形坐標標記格式:tl_x,tl_y,tr_x,tr_y,br_x,br_y,bl_x,bl_y。
  • linux作業系統pwd的基本語法
    linux作業系統專題文章:linux作業系統詳解(linux不再難懂)『pwd'列印工作目錄 pwd的基本語法--為文件夾創建一個符號連結比如說在home目錄下創建一個htm連結指向列印可執行文件路徑pwd的基本語法--存儲「pwd」命令的值到變量中(比如說:a ),並從中列印變量的值(對於觀察shell腳本很重要
  • 在 Linux 上分析二進位文件的 10 種方法
    無論你的工作角色是什麼,如果你在 Linux 上工作,了解這些工具的基本知識將幫助你更好地理解你的系統。在這篇文章中,我們將介紹其中一些最流行的 Linux 工具和命令,其中大部分都是 Linux 發行版的一部分。如果沒有找到,你可以隨時使用你的軟體包管理器來安裝和探索它們。請記住:學習在正確的場合使用正確的工具需要大量的耐心和練習。
  • Linux常用文件類別有哪些 詳細解讀Linux不同類型的文件
    在linux上,任何軟體和I/O設備都被視為文件且Linux中的文件名最大支持256個字符,分別可以用A~Z,a~z,0~9等字符來命名。和windows不同,linux中文件名是區分大小寫的,所有的UNIX系列目錄都遵循這個規則。
  • 在linux中如何對文件進行壓縮和解壓呢?
    當我們習慣了在windows中通過第三方軟體來對文件進行打包壓縮和解壓操作的時候,有沒有想過,在linux中該如何進行操作呢?簡單來說,在linux中我們只需要使用tar命令就能夠實現對文件的壓縮和解壓操作,tar命令用於對文件進行打包壓縮或解壓,格式為「tar [選項] [文件]」。對於linux系統來說,常見的壓縮格式包括.tar或.tar.gz或.tar.bz2格式,格式相比windows系統中的壓縮格式來說就少得多了。
  • Python零基礎編程——文件、JSON數據存儲
    、JSON、網絡、線程一 文件操作1-文件讀取#讀取文件,全部輸出(with的這種方式,會自動close()釋放資源)filePath = 'D:\DevPython\Works\PythonPrime\data.csv'with open(filePath) as f_csv: context = f_csv.read()
  • Googler:現可在 Linux 終端下進行 Google 搜索
    現在,如果你是一位 Linux 用戶(我猜你也是),這裡有另外一個問題:如果你甚至不用離開終端就可以進行 Google 搜索那豈不是相當棒?甚至不用打開一個瀏覽器窗口?如果你是一位類 *nix 系統的狂熱者而且也是喜歡終端界面的人,我知道你的答案是肯定的,而且我認為,接下來你也將喜歡上我今天將要介紹的這個漂亮的小工具。它被稱做 Googler。
  • 通過可寫文件獲取Linux root權限的5種方法
    假設成功地通過ssh登錄到受害者的機器,並可以訪問非root的用戶終端。然後使用下面的命令,下面會舉例所有有寫權限的二進位文件。第5種方法因為在linux類系統中,passwd文件起著很重要的作用。所以,如果攻擊者有機會修改passwd文件,那麼這將會成為一種動態的權限提升的方式。
  • 通過可寫入的etcpasswd文件實現Linux提權
    本文我們將討論有關文件配置錯誤導致權限提升的例子。通常,在CTF挑戰期間,我們總會想到查看passwd文件,以了解系統上可用的用戶。passwd文件存在於Linux root的/etc目錄中。最重要的一點是,該文件非特權用戶也可以進行訪問。