迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 >

在 Shell 脚本中漂亮地打印 JSON

作者:迹忆客 最近更新:2023/05/19 浏览次数:

JSON 是一种文本方法,用于表示 JavaScript 对象文字和数组以及标量数据。 它相对更容易阅读和编写,并且更易于管理软件来解析和生成。

JSON 通常用于序列化结构化数据并通过网络交换它,通常是在服务器和 Web 应用程序之间。


在 Shell 脚本中漂亮地打印 JSON

在使用 JSON 时,人们可能希望它的输出采用一种更易于理解的格式。 考虑下面的 JSON 对象:

{"name": "Ali", "rollno": 123, "fathername": "Muhammad", "mothername": "Qimra", "semester": 5, "roomno": "b-12", }

理解上述 JSON 对象的属性已经很困难了,连十几个属性都不够,所以想象一下,如果有数百个属性,那将是一场什么样的噩梦。

因此,将其格式化为更人性化的格式非常重要,例如下面的 JSON 属性:

{"name": "Ali",
"rollno": 123,
"fathername": "Muhammad",
"mothername": "Qimra",
"semester": 5,
"roomno": "b-12"}

注意它现在看起来干净多了。 我们现在将通过多种方式来实现上述目标。

使用 python 2.6+,你可以使用:

echo '{"key1": "val1", "keyn": "valn"}' | python -m json.tool
# or use
echo '{"key1": "val1", "keyn": "valn"}' | python2 -m json.tool
# or use
echo '{"key1": "val1", "keyn": "valn"}' | python3 -m json.tool

输出将如下所示:

{
    "key1": "val1",
    "keyn": "valn"
}

但是,如果您还没有安装 Python、Python2 或 Python3,那么您将收到以下错误之一:

Command 'python' not found
Command 'python2' not found
Command 'python3' not found

为避免此错误,请使用以下命令:

sudo apt install python python2 python3

另一种方法是,如果您将 JSON 对象存储在 JSON 文件中,则运行以下命令:

python -m json.tool <path to json file>.json

如果为了以防万一,JSON 像 API 一样来自互联网资源,则使用:

curl <url> | python -m json.tool

我们现在将看到实现上述目标的其他方法。

假设我们有一个结构为 my_json.json 的文件:

{ "key1": "val1", " keyn": "valn" }

请注意我们使用 . 来指定当前目录,因为文件驻留在该目录中:

sudo jq . my_json.json | less –R

jq '.key1' <<< '{ "key1": "val1", " keyn": "valn" }'

cat my_json.json| jq .

echo '{ "key1": "val1", " keyn": "valn" }' | npx json

要使用 jq,您必须使用以下命令安装它:

sudo apt install jq

第一种、第三种(使用管道从文件my_json.json传输数据到进程jq)、第四种方法的输出如下:

{
    "key1": "val1",
    "keyn": "valn"
}

第四种方法需要 npx 的依赖,但运行该命令时不要担心。 如果您还没有安装 npx,它将自动安装。

第二种方法定义一个 JSON 对象并打印键 key1 值。 下面是它的输出:

"val1"

我们还可以将 Python 的 json.tool 与 pigmentize 结合起来以漂亮地打印 JSON 对象。 考虑下面的命令:

echo '{ "key1": "val1", " keyn": "valn" }' | python -m json.tool | pygmentize –g

上面命令的输出如下:

{
    "key1": "val1",
    "keyn": "valn"
}

但是,要使用上面的命令,您必须安装 pigmentize。 要安装 pigmentize,请使用以下命令:

sudo apt install python3-pygments

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

以管理员身份运行 PowerShell 脚本

发布时间:2024/03/01 浏览次数:131 分类:编程语言

本文将展示如何在不输入管理员凭据的情况下以管理员权限运行 powershell 脚本。如果代码片段未在提升的 Windows PowerShell 中运行,则以下脚本将自行提升你的脚本。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便