본문 바로가기
PROGRAMMING/PYTHON

[Python] JSON, open API 다루기

by 안녕나는현서 2021. 4. 28.
728x90

- JSON(JavasSript Object Notation)

  • 자바스크립트 프로그래밍 언어 부분에 기반
  • 데이터를 효율적으로 저장하고 교환하는 데 사용하는 텍스트 데이터
  • 사람이 읽고 쓰기에 쉬우며 컴퓨터가 파싱하고 생성하기도 쉬움
  • 이름&값의 집합, 정렬된 값의 리스트의 구조로 이루어짐
  • 파이썬의 리스트와 튜플이 JSON으로 변환하게 되면 array로 바뀜
  • (JSON의 array는 파이썬의 리스트로 변환하게 됨)
  • 파이썬에서 JSON을 다루려면 내장 모듈 JSON이 필요함 (import json)
import json

# JSON형식의 데이터를 열어 파이썬 객체로 읽기

with open('파일명.json') as json_file :
	json_data = json.load(json_file)
    
json_data

 

- 파이썬 객체를 JSON 문자열로 변환

st_json = json.dumps(student_data, indent = 4, sort_keys = True)
  • 낮은 가독성 : indent로 들여쓰기 설정
  • 키를 기준으로 정렬 : sort_keys = True

- OPEN API

  • 인터넷 이용자가 웹 검색 결과 및 사용자 인터페이스 등을 수동적으로 제공받는데 그치지 않고 직접 응용 프로그램과 서비스를 개발할 수 있도록 공개된 API
  • (= 인터넷 이용자가 웹 검색 결과 즉 데이터를 우리가 지정한 조건에 맞게끔 가져올 수 있는 도구)
  • 해당 업체에서 제공해주는 key가 필요함
    • 너무 과도한 사용이나 무분별한 사용을 막고 관리하기 위함
  • 해당 업체에서 가이드라인(참고문서) 제공
import requests

url = "http://www.kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.json?key=50ee936c7380f8675b6bb4de9a74212e&targetDt=20200501"

# 정보저장
res = requests.get(url)

# 인간이 확인할 수 있는 형식으로 변환하기 위해 text함수 사용
text = res.text

# json 형식으로 변환
MD_json = json.loads(text) # MD = MOVIE DATA

print(json.dumps(MD_json, indent = 4, sort_keys = True))
  • MD_json.keys() : 해당 json형식의 key 출력

 

- 크롤링 vs API

  • 크롤링
    • 브라우저를 통해 사용하던 웹 문서(HTML)를 파이썬으로 요청
    • BeautifulSoup으로 웹 문서 구조 형태로 변형
    • 선택자를 활용하여 원하는 데이터 활용
  • API
    • 데이터를 교환하기 위한 JSON 파일을 파이썬으로 요청
    • JSON을 쉽게 파이썬 문법(List/Dictionary)로 변형
    • 데이터 구조를 활용하여 원하는 데이터 활용
    • 요청을 통해 특정 기능을 제어하기도 함
728x90

댓글