Python을 사용하여 JSON 읽기, 쓰기 및 구문 분석
JSON은 인간이 쉽게 읽고 쓸 수 있으며 기계가 쉽게 구문 분석하고 생성할 수 있는 데이터 교환을 위한 경량 데이터 형식입니다. 이는 완전한 언어 독립적인 텍스트 형식입니다. JSON 데이터로 작업하기 위해 Python에는 JSON이라는 내장 패키지가 있습니다.
JSON 문자열의 예
s = '{'id':01, 'name': 'Emily', 'language': ['C++', 'Python']}' 구문은 JSON 구문의 하위 집합으로 간주됩니다. 자바스크립트 다음을 포함합니다:
- 이름/값 쌍: 데이터를 나타내며 이름 뒤에는 콜론( : ), 이름/값 쌍은 쉼표( , ).
- 중괄호: 물건을 담습니다.
- 대괄호: 값이 쉼표로 구분된 배열을 유지합니다( , ).
키/이름은 큰따옴표가 포함된 문자열이어야 하며 값은 다음 중 데이터 유형이어야 합니다.
JSON 파일의 예:
{ 'employee': [ { 'id': '01', 'name': 'Amit', 'department': 'Sales' }, { 'id': '04', 'name': 'sunil', 'department': 'HR' } ] } Python 구문 분석 JSON 문자열
아래 코드에서는 JSON을 Python 객체로 변환하겠습니다. JSON 문자열 Python을 구문 분석하기 위해 먼저 JSON 모듈을 가져옵니다. 변수에 JSON 문자열이 저장되어 있습니다. '직원' 다음을 사용하여 이 JSON 문자열을 Python 객체로 변환합니다. json.로드() Python의 JSON 모듈 메서드입니다. 그런 다음 'name' 키를 사용하여 직원의 이름을 인쇄합니다. .
파이썬3
# Python program to convert JSON to Python> import> json> # JSON string> employee> => '{'id':'09', 'name': 'Nitin', 'department':'Finance'}'> # Convert string to Python dict> employee_dict> => json.loads(employee)> print> (employee_dict)> print> (employee_dict[> 'name'> ])> |
산출
{'id': '09', 'name': 'Nitin', 'department': 'Finance'} Nitin Python은 JSON 파일을 읽습니다.
다음과 같은 JSON 파일이 있다고 가정해 보겠습니다.
여기서는 JSON 파일을 읽기 위해 open() 함수를 사용했습니다. 그런 다음 data라는 사전을 제공하는 json.load() 메서드를 사용하여 파일을 구문 분석합니다.
파이썬3
import> json> # Opening JSON file> f> => open> (> 'data.json'> ,)> # returns JSON object as> # a dictionary> data> => json.load(f)> # Iterating through the json> # list> for> i> in> data[> 'emp_details'> ]:> > print> (i)> # Closing file> f.close()> |
산출:
Python 사전을 JSON으로 변환
아래 코드에서는 파이썬 사전 다음을 사용하여 JSON 객체에 json.dumps() Python의 JSON 모듈 메서드입니다. 먼저 JSON 모듈을 가져온 다음 일부 키-값 쌍으로 작은 사전을 만든 다음 'indent=4'를 사용하여 json.dumps() 메서드에 전달하여 이 Python 사전을 JSON 개체로 변환합니다. 들여쓰기 값을 4로 지정했으므로 출력에서 볼 수 있듯이 각 데이터 앞에 4개의 공백이 있습니다.
파이썬3
# Python program to convert> # Python to JSON> import> json> > # Data to be written> dictionary> => {> > 'id'> :> '04'> ,> > 'name'> :> 'sunil'> ,> > 'department'> :> 'HR'> }> > # Serializing json> json_object> => json.dumps(dictionary, indent> => 4> )> print> (json_object)> |
산출
{ 'id': '04', 'name': 'sunil', 'department': 'HR' } 다음 유형의 Python 객체를 JSON 문자열로 변환할 수 있습니다.
Python 객체 및 해당 객체를 JSON으로 변환:
| 파이썬 | JSON과 동일 |
|---|---|
| 딕셔너리 | 물체 |
| 리스트, 튜플 | 정렬 |
| str | 끈 |
| 정수, 부동 | 숫자 |
| 진실 | 진실 |
| 거짓 | 거짓 |
| 없음 | 없는 |
Python에서 파일에 JSON 쓰기
JSON 모듈의 json.dump() 함수와 Python의 파일 처리를 사용하여 JSON을 파일에 작성할 수 있습니다. 아래 프로그램에서는 다음을 사용하여 쓰기 모드에서 Sample.json이라는 파일을 열었습니다. '안에' . 파일이 존재하지 않으면 생성됩니다. Json.dump()는 Python 사전을 JSON 문자열로 변환하고 Sample.json 파일에 저장됩니다.
파이썬3
# Python program to write JSON> # to a file> import> json> > # Data to be written> dictionary> => {> > 'name'> :> 'sathiyajith'> ,> > 'rollno'> :> 56> ,> > 'cgpa'> :> 8.6> ,> > 'phonenumber'> :> '9976770500'> }> > with> open> (> 'sample.json'> ,> 'w'> ) as outfile:> > json.dump(dictionary, outfile)> |
산출:
Python 프리티 프린트 JSON
문자열을 JSON으로 변환하면 데이터가 읽기 어려운 형식이 됩니다. 더 읽기 쉽게 만들기 위해 다음과 같은 json.dumps() 함수에 추가 인수를 전달하여 예쁜 인쇄를 사용할 수 있습니다. 톱니 모양 그리고 sort_keys 아래 코드에서 사용된 것과 같습니다.
파이썬3
# Python program to convert JSON to Python> import> json> # JSON string> employee> => '{'id':'09', 'name': 'Nitin', 'department':'Finance'}'> # Convert string to Python dict> employee_dict> => json.loads(employee)> # Pretty Printing JSON string back> print> (json.dumps(employee_dict, indent> => 4> , sort_keys> => True> ))> |
산출
{ 'department': 'Finance', 'id': '09', 'name': 'Nitin' }