一招帶你帶你解析 JSON 串
- 2019 年 11 月 7 日
- 筆記
我在之前的「零基礎入門學習 Python」這個系列中,寫過關於 JOSN 的文章 — Python 標準庫之 JSON ,沒看的可以看一下。JSON 是一種輕量級的數據交換格式,對於我們的閱讀和編寫十分之友好,同時對機器來說也很容易解析和生成。
如果你已經是學過或者做過一段時間的編程,你可能會發現這麼一個現象,那就是 JSON 好像隨隨便便就能在某個犄角旮旯里看到,這正是由它的諸多優點決定的。隨着 JSON 使用越廣泛,這種諸如需要將 JSON 字符串轉化為 JSON 對象的需求就越頻繁。
我光在這說「頻繁」,到底這麼才算是頻繁呢?我們總得擺事實,講道理,不能我們張嘴說它頻繁它就頻繁。讓我們來打開 Google,然後輸入 JSON,查詢一下,處於搜索結果第一項的便是「JSON在線解析及格式化驗證」。

還記得我們之前講過的「日誌」么,如果不記得或者忘記了,可以再看看這篇文章 — 所有 Python 程序員必須要學會的「日誌」記錄。 在一些實際的工作過程中,系統會經常調用底層服務的接口,這些接口一般用 JSON 的格式返回,為了便於查找問題的所在,我們一般將這些 JSON 轉化為字符串然後保存到日誌文件中。當我們遇到什麼問題的時候只需要將這些日誌中的 JSON 字符串拿出來分析分析就好了。在這個時候,我們就需要將一個 JSON 字符串轉化為 JSON 對象,以便於閱讀。
在上面用 Google 搜索的時候提到了「JSON在線解析及格式化驗證」,這是一種轉化的方法。那除了這種打開瀏覽器用在線工具以外,是不是還有別的更巧妙的方法?俗話不是說求人不如求己么,萬一哪天沒網了剛好想轉化那可咋整?
提醒一下,現在我們用的可是 Python 啊,號稱「省心省力,自力更生」的典範,怎麼可能被這種小事兒給難倒,python 早就給我們想到了,那就是用命令行終端的 Python 解釋器來解析 JSON。請看下面示例:
echo '{"name":"rocky","like":"python","age":23}' | python -m json.tool
輸出結果如下所示:
{ "age": 23, "like": "python", "name": "rocky" }
這種使用命令行解釋器解釋 Python 串非常方便,而且你看上面輸出的結果就可以發現,工具還會自動將轉化的結果進行對齊和格式化,真的是非常的便於閱讀。為了更直觀的來看,我們來看一個複雜些的例子:
echo '{"name":{"first":"rocky","second":"leey"},"like":"python","age":23}' | python -m json.tool
顯示的結果如下:
{ "age": 23, "like": "python", "name": { "first": "rocky", "second": "leey" } }
ps:最後想說,不好意思這周拖到今天才更技術文,最近牙齦上火加上天氣突變受涼,一下子病了,發燒了三天,寫下這篇文章的時候我還是是頂着 41 度可以烤紅薯的腦袋。說這個不是為了賣慘,主要是後台有一些朋友問起沒更新的問題,就不一一回復了,在這就算回答了。天氣漸涼,大家注意身體,我儘快好起來,給大家更文。