如何在命令行中打印格式化的json和xml数据

来源:互联网 发布:淘宝网页面布局分析 编辑:程序博客网 时间:2024/06/05 04:08

如果你跟我一样是个重度命令行依赖用户,那么当你在Terminal中用curl调试一些Rest API的时候,肯定会因为一堆看上去杂乱无章的输出而头大不已,比如像下面这样…

json_without_format

当然,你可以再把这一堆输出copy到某个formatter里面,如果你真的要这么做,那我推荐一个还不错的在线formatter网站。但如果你不想这么麻烦,想直接在Terminal里面就看到格式化的数据,那也可以,方式就是通过python(2.6版本之后)的一个module,使用方式如下

1
curl http://apihost/v0/public/data-d type=2 | python -m json.tool

如果API返回的是一串合法的json,那么这个时候你在命令行里看到就是这样的

json_with_format

这个方法唯一的问题就是在Terminal里没法显示unicode中文,但如果你只是想看看返回数据的结构,那就没问题。或者如果你有什么完美的解决方案,也请你不吝分享。

虽然现在JSON以其轻量级,易解析等诸多优点大行其道,但也有一些系统的API返回的数据是XML格式的,python没有现成的module像格式化json一样格式化xml。当然,你可以用lxml自己写一个,这也很简单。(如果你真的写了,那也请你不吝分享出来…LOL)。虽然没有现成的python module,但是有现成的工具,那就是xmllint。关于xmllint的介绍自己看doc就是了,他是libxml2的一部分,所以在大多数的*nix系统上都是默认自带的。用起来也很简单

1
curl http:://api-which-returns-xml-string| xmllint --format-

格式化之后的xml数据如下所示

xml_with_format

Have fun!

0 0
原创粉丝点击