在 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
相关文章
以管理员身份运行 PowerShell 脚本
发布时间:2024/03/01 浏览次数:131 分类:编程语言
-
本文将展示如何在不输入管理员凭据的情况下以管理员权限运行 powershell 脚本。如果代码片段未在提升的 Windows PowerShell 中运行,则以下脚本将自行提升你的脚本。
获取 PowerShell 脚本的当前位置
发布时间:2024/02/29 浏览次数:133 分类:编程语言
-
本文将讨论如何在不同版本的 PowerShell 脚本环境中获取 PowerShell 脚本的当前位置。