명령 줄에서 JSON 파일을 어떻게 예쁘게 인쇄 할 수 있습니까?
일련의 JSON 요소가있는 파일이 있습니다.
{ element0: "lorem", value0: "ipsum" }
{ element1: "lorem", value0: "ipsum" }
...
{ elementN: "lorem", value0: "ipsum" }
읽을 수있는 형식으로 파일 콘텐츠를 표시하도록 JSON 형식을 지정하는 셸 스크립트가 있습니까?
나는 이 포스트를 보았고 좋은 출발점이라고 생각한다!
내 생각은 파일의 행을 반복하고 다음을 수행하는 것입니다.
while read row; do echo ${row} | python -mjson.tool; done < "file_name"
다른 아이디어가있는 사람이 있습니까?
파일의 결과를 python json 도구 2.6 이상으로 파이프합니다.
cat 'file_name' | python -m json.tool
Python JSON 도구를 사용할 수 있습니다 (Python 2.6 이상 필요).
예를 들면 :
echo '{ "element0" : "lorem", "element1" : "ipsum" }' | python -m json.tool
당신에게 줄 것 :
{
"element0": "lorem",
"element1": "ipsum"
}
jq-가볍고 유연한 명령 줄 JSON 프로세서
발견해야 할 것보다 더 오래 걸렸을 때 나는 이것이 그 자체로 들어갈 가치가 있다고 느꼈다. 의 json 출력을 예쁘게 인쇄하는 간단한 방법을 찾고있었습니다 docker inspect -f
. Noufal Ibrahim이 다른 답변의 일부로 위에서 간략하게 언급했습니다.
jq 웹 사이트 ( https://stedolan.github.io/jq/ )에서 :
jq는 sed for JSON 데이터와 비슷합니다. sed, awk, grep 및 friends를 사용하여 텍스트로 플레이 할 수있는 것과 마찬가지로 쉽게 구조화 된 데이터를 분할하고 필터링하고 매핑하고 변환하는 데 사용할 수 있습니다.
기본적으로 컬러 출력을 제공하며 간단히 다음과 같이 파이프해야합니다 jq
.
cat file | jq .
예:
"원시"json 출력 대 jq에 파이프 된 동일한 결과
Pygmentize + Python json.tool을 사용한 컬러 출력
Pygmentize 는 킬러 도구입니다. 이것 좀 봐. python json.tool과 pygmentize를 결합합니다.
echo '{"foo": "bar"}' | python -m json.tool | pygmentize -g
다른 유사한 도구 및 설치 지침은 위에 링크 된 답변을 참조하십시오.
다음은 라이브 데모입니다.
그것들이 많이 있습니다. 개인적으로이 별칭은 내.zshrc
pjson () {
~/bin/pjson.py | less -X
}
곳 pjson.py
이다
#!/usr/bin/env python
import json
import sys
try:
input_str = sys.stdin.read()
print json.dumps(json.loads(input_str), sort_keys = True, indent = 2)
except ValueError,e:
print "Couldn't decode \n %s \n Error : %s"%(input_str, str(e))
명령 줄에서 파이프로 사용할 수 있습니다 (예 :) curl http://.... | pjson
.
OTOH, 사용자 지정 코드는 책임이므로 jq가 있습니다. C로 작성되었으며 (따라서 Python 또는 Node와 같은 종속성없이 이식 가능) 예쁜 인쇄 이상의 작업을 수행하고 빠릅니다.
당신이 사용할 수있는 jq
모든 리눅스 시스템에 설치할 수 있습니다 패키지를. 아래 명령을 사용하여 도구를 설치하십시오.
# Redhat based systems(Centos)
yum install -y epel-release
yum install -y jq
# Debian based systems
apt install -y jq
그런 다음 텍스트 스트림을 jq 도구로 파이프 할 수 있습니다.
echo '{"test":"value", "test2":"value2"}' | jq
이 답변이 도움이되기를 바랍니다.
Mac OS에서는 jq
다음 명령을 사용하여 설치 합니다.
$ brew install jq
다음과 같이 예쁜 인쇄 JSON을 얻을 수 있습니다.
$ curl -X GET http://localhost:8080/api/v1/appointments/1 | jq
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 117 0 117 0 0 8404 0 --:--:-- --:--:-- --:--:-- 9000
{
"craeted_at": "10:24:38",
"appointment_date": "2019-02-08",
"name_of_doctor": "Monika",
"status": true,
"price": 12.5,
"id": 1
}
Shawn의 솔루션이지만 Python 3 :
echo '{"foo": "bar"}' | python3 -m json.tool
적절한 들여 쓰기를 사용하여 JSON 형식을 지정하려면 JSON.stringify
console.log(JSON.stringify(your_object, null, 2)); // prints in b/w
하지만 색상을 추가하여 더 예쁘게 만들려면 내 패키지를 확인하십시오. beautify-json
예 :
const { jsonBeautify } = require('beautify-json')
let your_object = {
name: 'Nikhil',
age: 22,
isMarried: false,
girlfriends: null,
interestedIn: [
'javascript',
'reactjs',
'nodejs'
]
}
jsonBeautify(your_object) // It will beautify your object with colors and proper indentation and display it on the terminal
출력 :
'development' 카테고리의 다른 글
Swift : 레이블 또는 textView에 HTML 데이터 표시 (0) | 2020.12.31 |
---|---|
하나의 IPython 노트북 셀에 여러 이미지를 표시 하시겠습니까? (0) | 2020.12.31 |
Swift UIView 배경색 불투명도 (0) | 2020.12.31 |
PKCS12 내보내기 중에 OpenSSL이 " '화면'을 임의 상태로로드 중"과 함께 중단됨 (0) | 2020.12.31 |
APK 생성시 네이티브 Android 중복 파일 오류에 대응 (0) | 2020.12.31 |