gpt4 book ai didi

json - 如何在 shell 脚本中漂亮地打印 JSON?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:16:58 29 4
gpt4 key购买 nike

是否有 (Unix) shell 脚本可以将 JSON 格式化为人类可读的形式?

基本上,我希望它转换以下内容:

{ "foo": "lorem", "bar": "ipsum" }

...变成这样的东西:

{
"foo": "lorem",
"bar": "ipsum"
}

最佳答案

使用 Python 2.6+,您可以:

echo '{"foo": "lorem", "bar": "ipsum"}' | python -m json.tool

或者,如果 JSON 在文件中,您可以:

python -m json.tool my_json.json

如果 JSON 来自 Internet 源,例如 API,您可以使用

curl http://my_url/ | python -m json.tool

在所有这些情况下,为了方便起见,您可以创建一个别名:

alias prettyjson='python -m json.tool'

为了更方便地输入更多内容以准备就绪:

prettyjson_s() {
echo "$1" | python -m json.tool
}

prettyjson_f() {
python -m json.tool "$1"
}

prettyjson_w() {
curl "$1" | python -m json.tool
}

对于上述所有情况。你可以把它放在 .bashrc 中,它每次都可以在 shell 中使用。像 prettyjson_s '{"foo": "lorem", "bar": "ipsum"}' 一样调用它。

请注意,正如@pnd 在下面的评论中指出的那样,在 Python 3.5+ 中,默认情况下不再对 JSON 对象进行排序。要排序,请将 --sort-keys 标志添加到末尾。 IE。 ... | python -m json.tool --sort-keys.

关于json - 如何在 shell 脚本中漂亮地打印 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49853557/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com