![在 Windows 终端中格式化 cURL 输出](https://linux22.com/image/1273512/%E5%9C%A8%20Windows%20%E7%BB%88%E7%AB%AF%E4%B8%AD%E6%A0%BC%E5%BC%8F%E5%8C%96%20cURL%20%E8%BE%93%E5%87%BA.png)
当我尝试执行 cURL 请求时这里,Windows 7 (x64) 返回没有换行符的输出:
C:\Users\kiwi>curl http://www.documentcloud.org/api/search.json?q=group:nytimes
{"total":2821,"page":1,"per_page":10,"q":"group:nytimes","documents":[{"id":"862
75-isn-10015-abd-al-rahim-al-nashiri-jtf-gtmo","title":"ISN 10015 - Abd al Rahim
al Nashiri - JTF-GTMO Detainee Assessment","access":"public","pages":15,"descri
ption":null,"source":null,"created_at":"Sun, 24 Apr 2011 15:50:19 +0000","update
d_at":"Mon, 25 Apr 2011 17:11:41 +0000","canonical_url":"http://www.documentclou
d.org/documents/86275-isn-10015-abd-al-rahim-al-nashiri-jtf-gtmo.html","resource
s":{"pdf":"http://s3.documentcloud.org/documents/86275/isn-10015-abd-al-rahim-al
-nashiri-jtf-gtmo.pdf","text":"http://s3.documentcloud.org/documents/86275/isn-1
0015-abd-al-rahim-al-nashiri-jtf-gtmo.txt","thumbnail":"http://s3.documentcloud.
org/documents/86275/pages/isn-10015-abd-al-rahim-al-nashiri-jtf-gtmo-p1-thumbnai
l.gif","search":"http://www.documentcloud.org/documents/86275/search.json?q={que
ry}","page":{"text":"http://www.documentcloud.org/documents/86275/pages/isn-1001
5-abd-al-rahim-al-nashiri-jtf-gtmo-p{page}.txt","image":"http://s3.documentcloud
.org/documents/86275/pages/isn-10015-abd-al-rahim-al-nashiri-jtf-gtmo-p{page}-{s
ize}.gif"}}},{"id":"86274-isn-10020-majid-khan-jtf-gtmo-detainee-assessment","ti
tle":"ISN 10020 - Majid Khan - JTF-GTMO Detainee Assessment","access":"public","
pages":12,"description":null,"source":null,"created_at":"Sun, 24 Apr 2011 15:50:
18 +0000","updated_at":"Mon, 25 Apr 2011 17:10:01 +0000","canonical_url":"http:/
/www.documentcloud.org/documents/86274-isn-10020-majid-khan-jtf-gtmo-detainee-as
sessment.html","resources":{"pdf":"http://s3.documentcloud.org/documents/86274/i
sn-10020-majid-khan-jtf-gtmo-detainee-assessment.pdf" ...
这可能是默认行为,但是在 Windows 上使用 cURL 时我可以做些什么来获得一些可读的 JSON 输出?
答案1
这是一个老问题,但我想在总体简单的背景下回答。
- 安装 Node.Js(可选) - 如果你没有 Node js,请下载LTS 版本Node JS(如果需要,你甚至可以安装最新版本)
- 安装后(或者如果您已经安装了 node js,则只需确认类型
node -v
和npm -v
。 - 两者都应返回正确的版本号,如下所示
- 完成安装确认后,继续在节点上安装 jsontool lib 的全局版本(使用 -g)标志。
npm install -g jsontool
答案2
您可以使用 Windows 版本的杰奇格式化 json 的输出。
我通常将下载的可执行文件重命名为 justjq.exe
并将其放在我的c:\Windows\System32
目录中,以便可以在任何地方使用它。
要使用,只需将 curl 的输出导入其中,如下所示:
curl "http://www.documentcloud.org/api/search.json?q=group:nytimes" | jq
答案3
不完全是,但是这里有一个 Python 脚本可以对此进行改进。
import urllib2
import simplejson
import pprint
URL = "http://www.documentcloud.org/api/search.json?q=group:nytimes"
def showfeed(argv):
argv[1] if len(argv) > 1 else URL
fo = urllib2.urlopen(URL)
obj = simplejson.loads(fo.read())
pprint.pprint(obj)
if __name__ == "__main__":
import sys
showfeed(sys.argv)