Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 JSON을 파싱하는 방법 – 기초부터 실전 예제까지

Python에서 JSON을 어떻게 파싱할 수 있을까요? 가장 기본적인 방법은 json.load() 메서드를 사용해 JSON 파일을 불러오는 것입니다. 그 결과는 Python 딕셔너리(dictionary) 형태로 반환되며, 이후 딕셔너리 메서드를 활용해 원하는 필드에 자유롭게 접근할 수 있습니다.

JSON(JavaScript Object Notation)은 경량 데이터 교환 형식으로, 웹 API나 설정 파일 등 다양한 환경에서 데이터를 주고받을 때 널리 사용됩니다.

JSON 파일 또는 JSON 응답에서 정보를 추출하려면 먼저 데이터를 파싱(parsing)하는 과정이 필요합니다.

Python에서 JSON 파싱하기

이 글의 예제에서는 아래와 같은 JSON 데이터를 사용합니다:

{
   "store":{
      "book":[
         {
            "category":"reference",
            "author":"Nigel Rees",
            "title":"Sayings of the Century",
            "price":8.95
         },
         {
            "category":"fiction",
            "author":"Evelyn Waugh",
            "title":"Sword of Honour",
            "price":12.99
         }
      ],
      "bicycle":{
         "color":"red",
         "price":19.95
      }
   },
   "expensive":10
}

첫 번째 단계는 JSON 파일을 Python으로 불러오는 것입니다:

import json

with open('store.json') as json_file:
    data = json.load(json_file)
print(data)

이제 JSON 파일의 전체 내용이 data 변수에 저장되었습니다.

print() 메서드를 실행하면 위 JSON 내용이 그대로 출력됩니다.

참고 사항

위 방법으로 불러온 JSON은 Python 딕셔너리 형태로 저장됩니다. print(type(data))를 실행하면 데이터 타입이 <class 'dict'>로 출력되는 것을 확인할 수 있습니다.

JSON 튜토리얼 – JavaScript와 함께 JSON 활용하기

Python에서 JSON을 파싱하는 방법 – 기초부터 실전 예제까지

JSON에서 특정 데이터 추출하기

JSON이 Python 딕셔너리로 변환되었으므로, 필드 이름(딕셔너리의 키(key))을 지정하여 원하는 데이터만 골라서 가져올 수 있습니다.

예를 들어, 위 JSON에서 자전거(bicycle)의 가격을 가져오려면 다음과 같이 작성합니다:

print(data['store']['bicycle']['price'])

출력 결과:

19.95

JSON 배열에서 데이터 추출하기

위 JSON 예제에서 'book' 필드는 JSON 배열(Array)입니다.

배열인 경우에는 인덱스 표기법(index notation)을 사용해 특정 항목에 접근할 수 있습니다.

예를 들어, 두 번째 책의 제목을 가져오려면 다음과 같이 작성합니다:

print(data['store']['book'][1]['title'])

출력 결과:

Sword of Honour

조건에 따른 JSON 파싱

가격이 10.00 이하인 모든 책을 찾고 싶다면 어떻게 해야 할까요?

이런 경우에는 반복문과 조건문을 함께 사용하면 됩니다:

books = data['store']['book']
for book in books:
    if book['price'] <= 10.00:
        print(book)

출력 결과:

{'category': 'reference', 'author': 'Nigel Rees', 'title': 'Sayings of the Century', 'price': 8.95}

마무리

이번 포스트에서는 Python에서 JSON을 파싱하는 방법을 살펴보았습니다. 핵심은 JSON 파일을 불러오면 Python 딕셔너리로 저장된다는 점입니다. 딕셔너리로 변환된 이후에는 익숙한 딕셔너리 메서드와 문법을 그대로 활용해 JSON 안에서 필요한 값을 손쉽게 추출할 수 있습니다. 이 개념만 잘 익혀두면 API 응답 처리나 설정 파일 관리 등 실무에서 JSON을 다루는 일이 훨씬 수월해집니다.