JSON 약자 제이 아바타 에스 토굴 영형 대상 N 오타. 데이터를 구조화하는 형식입니다. 이 형식은 다양한 웹 애플리케이션에서 서로 통신하는 데 사용됩니다. 이번 글에서는 JSON Pretty Print에 대해 알아보겠습니다.
JSON이란 무엇입니까?
JSON (JavaScript Object Notation)은 많은 프로그래밍 언어와 상호 교환이 가능한 텍스트 기반 데이터 형식입니다. 일반적으로 클라이언트-서버 응용 프로그램 간의 데이터 전송에 사용됩니다. 일반적으로 대역폭을 절약하기 위해 JSON 텍스트의 축소된 버전이 전송됩니다. 그러나 디버깅 및 분석을 위해서는 미화된 버전이나 예쁜 인쇄된 JSON이 필요합니다. 기본적으로 예쁜 인쇄 JSON은 적절한 들여쓰기, 공백 및 구분 기호가 있음을 의미합니다.
예:
Input: '[ {'studentid': 1, 'name': 'ABC', 'subjects': ['Python', 'Data Structures']}]' Output: [ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] } ]> Python의 json.dumps()
먼저 json.loads() 메서드를 사용하여 JSON 문자열을 다음으로 변환합니다. 파이썬 물체. 이 객체를 예쁜 인쇄 JSON 문자열로 변환하려면 json.dumps() 메서드가 사용됩니다. 다음은 이러한 사례를 더 잘 이해하기 위한 예와 단계입니다.
통사론: json.dumps(obj, 들여쓰기, 구분 기호)
매개변수:
- 객체: obj를 JSON 형식 스트림으로 직렬화
- 톱니 모양: 들여쓰기가 음수가 아닌 정수 또는 문자열인 경우 JSON 배열 요소와 객체 멤버는 해당 들여쓰기 수준으로 예쁘게 인쇄됩니다. 들여쓰기 수준이 0, 음수이거나 줄 바꿈만 삽입됩니다.
- 구분 기호: 지정된 경우 구분 기호는 (item_separator, key_separator) 튜플이어야 합니다.
예쁜 인쇄 JSON 문자열
이 메소드에는 공백 수를 지정하는 indent 매개변수와 키와 값 사이의 구분 기호를 지정하는 구분 기호 매개변수가 있습니다. 기본적으로 구분 기호는 키-값 쌍 사이에는 쉼표이고 키와 값 사이에는 콜론입니다. json.dumps()의 indent 매개변수가 음수, 0 또는 빈 문자열이면 들여쓰기가 없고 줄 바꿈만 삽입됩니다. 기본적으로 들여쓰기는 없음이며 데이터는 한 줄로 표시됩니다.
이 코드는 학생 기록이 포함된 JSON 문자열을 가져와 Python 데이터 구조로 구문 분석한 다음 가독성을 높이기 위해 적절한 들여쓰기를 사용하여 JSON 데이터를 보기 좋게 인쇄합니다.
파이썬3
운영 체제 예
import> json> json_data>=> '[ {>'studentid'>:>1>,>'name'>:>'ABC'>,> 'subjects'>: [>'Python'>,>'Data Structures'>]},> >{>'studentid'>:>2>,>'name'>:>'PQR'>,> >'subjects'>: [>'Java'>,>'Operating System'>]} ]'> obj>=> json.loads(json_data)> json_formatted_str>=> json.dumps(obj, indent>=>4>)> print>(json_formatted_str)> |
>
>
산출:
[ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }, { 'studentid': 2, 'name': 'PQR', 'subjects': [ 'Java', 'Operating System' ] } ]> 예쁘게 인쇄된 JSON 데이터를 파일로 들여쓰기=0 .
이 코드는 학생 기록이 포함된 JSON 문자열을 가져와 Python 데이터 구조로 구문 분석한 다음 들여쓰기 없이 JSON 데이터를 깔끔하게 인쇄하여 간결하고 읽기 어렵게 만듭니다.
파이썬3
import> json> json_data>=> '[ {>'studentid'>:>1>,>'name'>:>'ABC'>,> >'subjects'>: [>'Python'>,>'Data Structures'>]},> >{>'studentid'>:>2>,>'name'>:>'PQR'>,> >'subjects'>: [>'Java'>,>'Operating System'>]} ]'> obj>=> json.loads(json_data)> json_formatted_str>=> json.dumps(obj, indent>=>0>)> print>(json_formatted_str)> |
>
>
산출:
[ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }, { 'studentid': 2, 'name': 'PQR', 'subjects': [ 'Java', 'Operating System' ] } ]> Pretty Print JSON 데이터를 파일에 쓰기
Python 객체를 JSON Pretty Print 형식의 데이터로 파일에 작성하려면 json.dump() 메서드를 사용합니다. json.dumps() 메소드와 마찬가지로 아름다운 JSON을 작성하기 위한 들여쓰기 및 구분 기호 매개변수가 있습니다.
파이썬3
import> json> data>=> [{>'studentid'>:>1>,>'name'>:>'ABC'>,> >'subjects'>: [>'Python'>,>'Data Structures'>]},> >{>'studentid'>:>2>,>'name'>:>'PQR'>,> >'subjects'>: [>'Java'>,>'Operating System'>]}]> with>open>(>'filename.json'>,>'w'>) as write_file:> >json.dump(data, write_file, indent>=>4>)> |
>
>
산출:
파일 이름.json
JSON 데이터를 읽고 예쁘게 인쇄하기
파일이나 URL에서 JSON을 읽으려면 json.load()를 사용하세요. 그런 다음 json.dumps()를 사용하여 객체(파일을 읽어서 얻은)를 예쁜 인쇄 JSON 문자열로 변환합니다.
파이썬3
import> json> with>open>(>'filename.json'>,>'r'>) as read_file:> > >obj>=> json.load(read_file)> >pretty_json>=> json.dumps(obj, indent>=>4>)> >print>(pretty_json)> |
>
>
산출:
[ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }, { 'studentid': 2, 'name': 'PQR', 'subjects': [ 'Java', 'Operating System' ] } ]> 사용 JSON을 예쁘게 인쇄하는 pprint 모듈 JSON 형식을 인쇄하려면
이 코드는 test.json이라는 파일에서 JSON 데이터를 읽고 이를 Python 데이터 구조로 구문 분석한 다음 내장된 두 가지 모두를 사용하여 인쇄합니다.print>기능과pprint>기준 치수. 그만큼pprint>모듈은 들여쓰기 2, 줄 너비 30자 및 압축 표현과 같은 특정 형식 옵션을 사용하여 JSON 데이터를 예쁘게 인쇄하는 데 사용됩니다.
파이썬3
import> json> import> pprint> with>open>(>'test.json'>,>'r'>) as json_data:> >student>=> json.load(json_data)> >print>(student)> >print>(>'
'>)> pp>=> pprint.PrettyPrinter(indent>=>2>, width>=>30>, compact>=>True>)> print>(>'Pretty Printing using pprint module'>)> pp.pprint(student)> |
>
>
산출:
{'Teacher_id': 1, 'name': 'Suraj', 'Salary': 50000, 'attendance': 80, 'Branch': ['English', 'Geometry', 'Physics', 'World History'], 'email': '[email protected]'} Pretty Printing using pprint module ('{'Teacher_id': 1, 'name': ' ''Suraj', 'Salary': 50000, ' ''attendance': 80, ' ''Branch': ['English', ' ''Geometry', 'Physics', ' ''World History'], 'email': ' ''[email protected]'}')> 명령줄에서 JSON을 예쁘게 인쇄하세요.
이 예에서는 명령줄을 사용하여 데이터를 인쇄하려고 합니다. 명령줄에서 JSON 개체를 검증하고 예쁘게 인쇄하기 위해 Python은 json.tool 패키지를 제공합니다.
파이썬3
echo {>'studentid'>:>1>,>'name'>:>'ABC'>,> >'subjects'>: [>'Python'>,>'Data Structures'>]} | python>->m json.tool> |
>
>
산출:
{ 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }>