본문 바로가기
기술스택을 쌓아보자/Python

[python] requests 로 OPENAPI /API 사용하는 코드 샘플

by 소리331 2022. 6. 6.
반응형

 

api 는 상당히 많이 사용되는데, 데이터 수집용으로 사용하게 되어서 정리해보았다.

api는 파이썬 패키지로 감싸서 제공하는 형태도 있지만 여기서는 url/uri 형태로 requests 패키지를 통해 사용하는 법을 정리해보았다.

requests 패키지 사용하기(get)

보통은 아래의 것들을 사용한다.

import requests

res = requests.get(url)

#200, 401 등의 상태코드
res.status_code 

#요청의 콘텐츰
res.content

 

로그인을 해야하는 경우

위의 코드처럼 간단하게 처리되면 좋지만, 보통은 단순 get 만 있는 것이 아니라 사용자 인증을 진행해주어야 한다. 이런 경우 session 상태를 변경시키는 post를 사용하여 사용자 인증을 진행해주어야 한다. 

import requests

with requests.Session() as sess:
    sess.post(f"{사용자인증url}") #locked 케이스인 경우, 잠겨도 200 리턴

    # get api field list
    res = sess.get(f"{get을 위한 url}")

 

 

xml 또는 json 의 차이점

둘의 특징을 간단히 확인해보자. Json은 파이썬 내의 dictionary 형태로 호환되기 때문에 많이 사용한다.

  • XML: EXtensible Markup Language
  • HTML과 매우 비슷한 문자 기반의 마크업 언어(text-based markup language)
  • 데이터를 저장하고 전달할 목적으로만 만듦
  • HTML 태그처럼 미리 정의되어 있지 않고, 사용자가 직접 정의
  • XML은 텍스트 데이터 형식의 언어로 모든 XML 문서는 유니코드 문자로만 이루어짐
  • XML을 기반으로 하는 언어: XHTML, SVG, RDF, RSS, Atom, MathML
  • json: JavaScript Object Notation
  • 텍스트 기반의 데이터
  • XML의 대안으로서 좀 더 쉽게 데이터를 교환하고 저장하기 위하여 고안
  • 모든 프로그래밍 언어에서 사용 가능

관련 패키지

 

xml.etree.ElementTree — ElementTree XML API — Python 3.10.4 문서

소스 코드: Lib/xml/etree/ElementTree.py xml.etree.ElementTree 모듈은 XML 데이터를 구문 분석하고 만들기 위한 단순하고 효율적인 API를 구현합니다. 버전 3.3에서 변경: 이 모듈은 가능할 때마다 빠른 구현을

docs.python.org

  • json 관련 패키지: json
 

json — JSON 인코더와 디코더 — Python 3.10.4 문서

json — JSON 인코더와 디코더 소스 코드: Lib/json/__init__.py JSON (JavaScript Object Notation), specified by RFC 7159 (which obsoletes RFC 4627) and by ECMA-404, is a lightweight data interchange format inspired by JavaScript object literal syn

docs.python.org

 

반응형

댓글