一招带你带你解析 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 度可以烤红薯的脑袋。说这个不是为了卖惨,主要是后台有一些朋友问起没更新的问题,就不一一回复了,在这就算回答了。天气渐凉,大家注意身体,我尽快好起来,给大家更文。