JSON은 API 이용 시에 자주 접하게 되는 포맷입니다. 파이썬 딕셔너리와 같은 구조로 쉽게 원하는 데이터 타입으로 바꿀 수 있습니다. json 모듈을 사용해도 되지만, requests 패키지를 이용하면 더 쉽게 사용할 수 있습니다. JSON 데이터를 읽고 쓰는 방법을 알아보았습니다.

 

 

JSON은 JavaScript Object Notation의 키와 값의 구조로 이루어진 데이터 포맷입니다. XML과 다르게 데이터를 파싱 할 필요가 없어 편리합니다. API로 데이터를 제공하는 경우 XML과 JSON 중에 데이터 포맷을 선택할 수 있는데요. 저는 JSON을 이용하는 것을 추천합니다. 사용하기가 더 쉽기 때문입니다.

 

1. JSON파일 구조

앞에서도 다뤘지만 JSON은 키와 값의 구조로 돼 있습니다. 파이썬의 딕셔너리와 구조가 동일한데요. 그래서 JSON포맷은 파이썬의 딕셔너리 자료형으로 변형하기 쉽습니다. JSON에서 사용할 수 있는 데이터 타입은 숫자(Number), 문자열(String), 불리언(Boolean), 배열(Array), 객체(Object), 빈 값(null)이 있습니다.

 

JSON-데이터-예시
JSON-예시

 

 

2. JSON 데이터 사용하기

JSON 데이터 포맷과 파이썬 자료형을 상호 변환하려면 json 모듈을 사용해야 합니다. 파이썬 딕셔너리 자료형을 아래와 같이 json파일로 저장할 수 있습니다.

 

import json

j_dict = {'a': 1, 'b': [1,2,3]}

with open('temp.json','w') as f:
    json.dump(j_dict, f)

 

반대로 load함수를 이용해서 json파일을 파이썬 딕셔너리로 가져올 수 있습니다.

 

with open('temp.json','r') as f:
    j_dict = json.load(f)

 

json 모듈에서 사용하는 함수는 4가지가 있습니다. 각각을 정리해보면 아래와 같습니다.

 

  • dump: json파일을 만든다
  • dumps: 문자열로 만든다
  • load: json파일을 파이썬 딕셔너리로 불러온다
  • loads: json포맷의 문자나 바이트 데이터 타입을 파이썬 딕셔너리로 불러온다

 

파일과 관련될 때는 dump와 load를 사용하고, 문자열로 된 json 데이터 포맷을 다룰 때는 s가 붙은 함수를 이용한다고 생각하면 되겠습니다.

 

3. API를 이용한다면 requests 패키지

 

OPEN API를 이용하기 위해 통신 모듈로 urllib을 많이 이용합니다. 파이썬 내장 모듈로 별도 설치 없이 사용이 가능하지만, json데이터를 파싱 하는 것이 조금 귀찮습니다.

그보다는 requests 패키지를 이용하면 훨씬 간단하게 작성할 수 있습니다. json함수를 이용하면 json포맷의 데이터를 바로 파이썬 딕셔너리 자료형으로 만들어주기 때문입니다. 아래와 같이 사용하면 됩니다.

 

response = requests.get(url)
response.json()

 

JSON은 딕셔너리로 변환되기 때문에, 판다스 데이터 프레임으로도 변경하기 쉽습니다. 오늘은 이렇게 파이썬 JSON 데이터 읽기 및 쓰기, 사용하는 방법에 대해서 알아보았습니다. json은 웹에서 데이터를 주고받기 위해 많이 사용하는 데이터 포맷입니다. json 데이터 포맷을 사용하는 데 도움이 됐기를 바랍니다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기