การจัดรูปแบบเอาต์พุต cURL ใน Windows Terminal


1

เมื่อฉันพยายามที่จะดำเนินการตามคำร้องขอ 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" ...

นี่อาจเป็นพฤติกรรมเริ่มต้น แต่มีสิ่งใดบ้างที่ฉันสามารถทำได้เพื่อรับเอาต์พุต JSON บางส่วนที่สามารถอ่านได้เมื่อใช้ cURL บน Windows

คำตอบ:


1

ไม่อย่างแน่นอน แต่นี่เป็นสคริปต์ 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)

ฉันจะจำสิ่งนี้ไว้ในใจ อาจเป็นไปได้ที่จะทำใหม่เพื่อจัดรูปแบบเอาต์พุต JSON จาก cURL ภายในเทอร์มินัล ฉันจะดูว่าผู้ใช้รายอื่นอาจรู้อะไร แต่อย่างไรก็ตามแม้จะอยู่นอกขอบเขตของคำถามในฐานะคนที่มุ่งเน้นการเขียนโปรแกรมของเขาไปยัง Python สิ่งนี้มีค่ามาก
กีวี

เทอร์มินัลจะไม่ช่วยคุณ คุณต้องใช้โปรแกรมในการฟอร์แมต ฉันไม่คิดว่า curl ทำการฟอร์แมตเช่นกัน บนแพลตฟอร์ม posix มักจะทำด้วยเครื่องมือในไปป์ไลน์
Keith

0

ลองใช้ HTTPie มันเป็นเหมือน cURL แต่เป็นมิตรกับมนุษย์มากขึ้นซึ่งหมายความว่ามันจะจัดรูปแบบการตอบสนองของ json ให้สอดคล้องกับสิ่งที่ชอบ:

http://httpie.org/


0

เป็นคำถามเก่า แต่ฉันต้องการตอบในบริบทที่เรียบง่ายทั้งหมด

  1. ติดตั้ง Node.Js (ทางเลือก) - หากคุณไม่มี Node js ให้ดาวน์โหลดLTS Version of Node JS (คุณสามารถติดตั้งล่าสุดได้ถ้าต้องการ)
  2. หลังจากการติดตั้ง (หรือถ้าคุณมีโหนด js ติดตั้งแล้วเพียงแค่สำหรับประเภทการยืนยันและnode -vnpm -v
  3. ทั้งสองควรส่งคืนหมายเลขรุ่นที่เหมาะสมดังที่แสดงด้านล่าง

สแน็ปช็อตของโหนด js และหมายเลขเวอร์ชัน Npm

  1. เมื่อคุณเสร็จสิ้นการยืนยันการติดตั้งแล้วไปข้างหน้าและติดตั้งรุ่นทั่วโลก (ใช้ -g) ธงของ jsontool lib บนโหนด npm install -g jsontool

การติดตั้งเครื่องมือ json npm

  1. เมื่อคุณติดตั้งในขั้นตอนก่อนหน้าเสร็จแล้วให้ใช้ pipe | jsonในบรรทัดสุดท้ายของคำขอ curl
  2. เอาต์พุตโดยไม่มี json pipe ไม่มีท่อ json
  3. เอาต์พุตด้วย json pipe เอาต์พุตสวยด้วยท่อ json
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.