[파이썬] requests 웹 API 응답의 데이터 타입 처리

하나 이상의 웹 API를 사용하는 개발 프로젝트를 진행할 때, requests 라이브러리는 매우 유용하게 사용됩니다. requests는 Python에서 HTTP 요청을 보내고 응답을 받는 데 사용되는 간단하고 강력한 라이브러리입니다.

대부분의 웹 API는 데이터를 특정 형식(예: JSON, XML, HTML)으로 응답합니다. 이 데이터를 효율적으로 처리하고 원하는 형식으로 추출하기 위해서는 적절한 데이터 타입으로 변환해야 합니다. 이번 블로그 포스트에서는 requests를 사용하여 받은 웹 API 응답의 데이터 타입을 처리하는 방법에 대해 알아보겠습니다.

JSON 데이터 처리하기

대부분의 웹 API는 JSON 형식으로 데이터를 반환합니다. JSON 데이터를 파이썬에서 다루기 위해서는 json 모듈을 사용해야 합니다. 다음은 웹 API 요청을 보내고 JSON 데이터를 처리하는 예제 코드입니다.

import requests
import json

# 웹 API 요청 보내기
response = requests.get("https://api.example.com/data")

# JSON 데이터로 변환
data = json.loads(response.text)

# 원하는 데이터 추출하기
item_name = data["item_name"]
item_price = data["item_price"]

# 결과 출력
print(f"상품명: {item_name}")
print(f"가격: {item_price}")

위 코드에서는 requests.get() 함수를 사용하여 웹 API에 GET 요청을 보냅니다. response 변수는 Response 객체로, response.text 속성을 사용하여 API 응답의 텍스트 내용을 가져옵니다. 그런 다음 json.loads() 함수를 사용하여 JSON 데이터를 파이썬 딕셔너리로 변환합니다. 필요한 데이터를 추출한 뒤, 원하는 형식으로 출력하거나 처리할 수 있습니다.

XML 데이터 처리하기

일부 웹 API는 XML 형식으로 데이터를 반환합니다. XML 데이터를 파이썬에서 다루기 위해서는 xml.etree.ElementTree 모듈을 사용해야 합니다. 다음은 웹 API 요청을 보내고 XML 데이터를 처리하는 예제 코드입니다.

import requests
import xml.etree.ElementTree as ET

# 웹 API 요청 보내기
response = requests.get("https://api.example.com/data")

# XML 데이터 파싱
tree = ET.fromstring(response.content)

# 원하는 데이터 추출하기
item_name = tree.find("item_name").text
item_price = tree.find("item_price").text

# 결과 출력
print(f"상품명: {item_name}")
print(f"가격: {item_price}")

위 코드에서는 마찬가지로 requests.get() 함수를 사용하여 웹 API에 GET 요청을 보냅니다. response 변수의 content 속성을 사용하여 API 응답의 바이트 내용을 가져옵니다. 그런 다음 ElementTree.fromstring() 함수를 사용하여 XML 데이터를 파싱합니다. 추출할 데이터를 find() 함수로 찾은 뒤, text 속성을 사용하여 데이터 값을 가져올 수 있습니다.

HTML 데이터 처리하기

웹 크롤링을 위해 웹 API를 사용하는 경우, 일반적으로 HTML 데이터를 다루어야 할 때도 있습니다. HTML 데이터를 파이썬에서 다루기 위해서는 BeautifulSoup 라이브러리를 사용할 수 있습니다. 다음은 웹 API 요청을 보내고 HTML 데이터를 처리하는 예제 코드입니다.

import requests
from bs4 import BeautifulSoup

# 웹 API 요청 보내기
response = requests.get("https://api.example.com/data")

# HTML 데이터 파싱
soup = BeautifulSoup(response.content, "html.parser")

# 원하는 데이터 추출하기
item_name = soup.find("span", class_="item-name").text
item_price = soup.find("span", class_="item-price").text

# 결과 출력
print(f"상품명: {item_name}")
print(f"가격: {item_price}")

위 코드에서는 requests.get() 함수를 사용하여 웹 API에 GET 요청을 보냅니다. BeautifulSoup 객체를 생성할 때 html.parser를 사용하여 HTML 데이터를 파싱합니다. 필요한 데이터를 find() 함수로 찾은 뒤, text 속성을 사용하여 데이터 값을 가져올 수 있습니다.

결론

requests 라이브러리를 사용하여 웹 API 응답의 데이터 타입을 처리하는 방법에 대해 알아보았습니다. JSON, XML, HTML 데이터를 다루기 위한 각각의 모듈과 라이브러리를 소개했습니다. 이러한 기술들은 웹 API 데이터를 손쉽게 처리하고, 원하는 형식으로 가공할 수 있도록 도와줍니다. 이를 통해 개발 프로젝트를 더욱 효율적으로 진행할 수 있습니다.