在 Shell 脚本中漂亮地打印 JSON
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
相关文章
Bash 中的嵌套 for 循环
发布时间:2023/05/20 浏览次数:185 分类:操作系统
-
在本篇文章中,我们将讨论 bash 中的嵌套循环。 首先,我们将快速讨论 bash 中可用的不同 for 循环公式。 接下来,我们将举例讨论嵌套for循环。Bash 中 for 循环的变体
检查 Bash 中是否存在命令
发布时间:2023/05/20 浏览次数:77 分类:操作系统
-
我们可以在 Bash 中使用不同的内置命令来检查命令是否存在。 下面演示了这些命令的使用。使用命令 -v 命令检查 Bash 中是否存在命令 命令 -v 是所有 POSIX 系统和 Bash 中的内置函数。
在 Linux 中添加新用户的 Bash 脚本
发布时间:2023/05/20 浏览次数:54 分类:操作系统
-
这篇简短的文章是关于创建一个 Bash 脚本,该脚本可以自动为 Linux 操作系统添加用户和分配密码。 在 Linux 操作系统中,useradd 命令用于添加新用户并为他们提供密码。Bash 脚本 useradd 命令
在 Bash 中获取当前日期和时间
发布时间:2023/05/20 浏览次数:197 分类:操作系统
-
本文讨论在 Bash Scripting 中以某种指定格式显示当前日期和时间的方法。 为此,date 命令与多个选项一起使用。在 Bash 中使用日期命令
批处理脚本中的 For 循环
发布时间:2023/05/19 浏览次数:103 分类:操作系统
-
本篇文章将介绍如何在批处理脚本中使用 FOR 循环。循环用于连续执行特定任务,直到达到程序员指定的次数。 这个 FOR 循环有不同的版本。
批处理脚本中的 For \F
发布时间:2023/05/19 浏览次数:151 分类:操作系统
-
本文将讨论在批处理脚本中使用 FOR /F 循环。在批处理脚本中使用 FOR /F 循环 此类 FOR 循环的一般格式如下所示:
批处理文件循环遍历子目录中的文件
发布时间:2023/05/19 浏览次数:163 分类:操作系统
-
本文说明了我们如何编写一个批处理脚本来循环遍历子目录中的文件。 我们将举一个例子来解释这个概念。批处理文件循环遍历子目录中的文件