如何解决如何在 shell 脚本中漂亮地打印 JSON?
使用 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
标志添加到末尾。即... | python -m json.tool --sort-keys
。
解决方法
是否有(Unix)shell 脚本以人类可读的形式格式化 JSON?
基本上,我希望它转换以下内容:
{ "foo": "lorem","bar": "ipsum" }
…变成这样的东西:
{
"foo": "lorem","bar": "ipsum"
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。