使用jq處理JSON資料(三)

2022-09-16 22:24:22 字數 1665 閱讀 4121

前情提要:

今天,我來分享一下jq工具最後的一部分內容:檔案格式轉換

jq公式可以從jsoncsv的簡單轉換。

我們將把funtester.json檔案的article陣列轉換為csv檔案。

首先我們通過管道符將article內容過濾出來。

fv@funtester  ~/downloads  cat funtester.json| jq '.article'

這裡我們得到了一組json資料,而不是使用.artworks(不帶),那樣我們會得到乙個陣列,如下:

fv@funtester  ~/downloads  cat funtester.json| jq '.article'

[ ,

]

這裡可以理解為帶上得到的是一組物件,不帶得到了乙個陣列物件。

那麼接下來,需要將這些json物件轉換為陣列。這裡用到之前學到的組合管道符和函式中的語法:增加乙個管道符,處理每乙個json物件資料。

✘ fv@funtester  ~/downloads  cat funtester.json| jq '.article  | [.author,.title] '

[ "tester1",

"apitest"][

"tester2",

"performancetest"

]

新的過濾器[.author,.title]處理返回的json資料,獲取到json資料中keyauthortitle的值,並用逗號,連線。

最後一步,我們可以應用@csv運算子,該運算子將json陣列的格式設定為csv行

fv@funtester  ~/downloads  cat funtester.json| jq '.article  | [.author,.title] | @csv'

"\"tester1\",\"apitest\""

"\"tester2\",\"performancetest\""

這裡看到裡面的分號是轉義的,這是由於jq預設情況下將json編碼應用於其輸出。

因此想要獲取原始csv輸出,我們需要新增-r引數:

fv@funtester  ~/downloads  cat funtester.json| jq -r '.article  | [.author,.title] | @csv'

"tester1","apitest"

"tester2","performancetest"

Shell指令碼處理JSON資料工具jq

當我們在linux下需要處理json資料時,第一反應是用指令碼編寫乙個工具,這樣即耗時又不通用.本文將介紹專門的命令列json處理工具jq.1 安裝 1 ubuntu使用者可以直接使用下列命令安裝 sudo apt get install jq2 採用原始碼安裝 2 使用 1 解析json cat ...

jq進行json資料解析

jq進行json資料解析 學習了 幫助文件 使用man可以檢視詳細幫助,太強大了 yiqing cat a.json jq b0 a獲取多個屬性,逗號分隔,可以列出不包含的 yiqing cat a.json jq all a0,b0,c0 b可以直接按照資料來進行過濾 yiqing cat a.j...

jq動態處理價格公升降資料

動態處理資料,按照公升降處理 或者出發時間來排序 必選是table th 和 tr td 格式 都是小數點的數字 parsefloat 如果整型 用 parseint處理一下注釋會寫在 中 html 全部車款 預設 2.0t 78kw 渦輪增壓 廠商指導價 經銷商 1.5l 手動 悅享型 經典版 5...