파이썬에서 API 요청과 응답 데이터 다루기: 초보자를 위한 가이드

파이썬에서 API 요청과 응답 데이터 다루기: 초보자를 위한 가이드

웹 개발이나 데이터 분석을 하다 보면 API(응용 프로그램 인터페이스)를 다루는 경우가 많이 있어요. API를 사용하면 다양한 서비스와 데이터를 쉽게 활용할 수 있는데요, 이 글에서는 파이썬을 이용해 API 요청과 응답 데이터를 어떻게 다루는지에 대해 자세히 설명할 거예요.

API란 무엇인가요?

API는 소프트웨어 응용 프로그램 간의 연결을 담당하는 인터페이스예요. API를 통해 서로 다른 시스템은 정보를 주고받고, 기능을 공유할 수 있는데요, 예를 들어, 날씨 정보를 제공하는 API를 사용하면, 프로그래밍을 통해 간단하게 사용자의 위치에 맞는 날씨 정보를 받아올 수 있어요.

API의 종류

  • REST API: 가장 일반적으로 사용되는 API 형식으로, HTTP 프로토콜을 기반으로 하여 요청과 응답을 주고받아요.
  • SOAP API: XML 기반의 프로토콜로, 좀 더 복잡한 데이터 구조를 가지고 있어요.
  • GraphQL: 페이스북에서 개발한 API로, 데이터를 요청할 때 필요한 정보만 딱 요청할 수 있어요.

파이썬에서 API 요청하기

파이썬에서 API를 사용하기 위해 가장 많이 사용되는 라이브러리는 requests예요. 이 라이브러리를 이용하면 손쉽게 HTTP 요청을 만들 수 있어요.

requests 라이브러리 설치하기

먼저 requests 라이브러리가 설치되어 있지 않다면 아래 명령어로 설치해주세요.

bash
pip install requests

GET 요청 보내기

GET 요청은 API에서 데이터를 조회할 때 사용해요. 다음은 JSONPlaceholder라는 무료 API를 사용해 데이터를 요청하는 예제입니다.

response = requests.get(‘https://jsonplaceholder.typicode.com/posts’)
data = response.json()

받은 데이터 출력하기

for post in data:
print(f”제목: {post[‘title’]}, 내용: {post[‘body’]}”)

이 예제에서 우리는 /posts 엔드포인트를 사용하여 여러 게시글 데이터를 받아오고, 그 중 제목과 내용을 출력하고 있어요.

POST 요청 보내기

POST 요청은 서버에 데이터를 보낼 때 사용해요. 아래는 새로운 게시글을 생성하는 예제입니다.

new_post = {
‘title’: ‘새로운 제목’,
‘body’: ‘새로운 내용’,
‘userId’: 1
}

response = requests.post(‘https://jsonplaceholder.typicode.com/posts’, json=new_post)

if response.status_code == 201:
print(‘게시글이 성공적으로 추가되었어요:’, response.json())

위 예제에서는 새로운 게시글을 생성하기 위해 POST 요청을 보내고, 성공적인 응답을 받으면 해당 내용을 출력해요.

API 응답 데이터 다루기

API로부터 받은 데이터는 대부분 JSON 형식이에요. JSON은 인적 구성 지향적 데이터 형식으로, 객체 형태로 쉽게 데이터를 표현할 수 있어서 인기가 많아요.

JSON 데이터 구조 이해하기

보통 API의 응답 데이터는 다음과 같은 형태를 가집니다.

json
{
"userId": 1,
"id": 1,
"title": "제목",
"body": "내용"
}

응답 데이터 처리하기

받은 데이터를 사용하기 위해선 우선 데이터를 분석하고 필요한 정보를 추출해야 해요. 아래는 응답 데이터를 처리하는 방법을 보여주는 예제입니다.

특정 userId의 게시글만 필터링하기

filtered_posts = [post for post in data if post[‘userId’] == 1]

for post in filtered_posts:
print(f”제목: {post[‘title’]}”)

위의 코드에서 우리는 특정 userId에 해당하는 게시글들만 필터링하여 출력하고 있어요.

오류 처리하기

API를 사용할 때 발생할 수 있는 오류를 다루는 것도 매우 중요해요. response 객체의 상태 코드(status code)를 통해 요청이 성공적으로 처리되었는지 확인할 수 있어요.

예를 들어, 상태 코드가 200이면 요청이 성공한 것이고, 404는 요청한 자원이 없다라는 의미예요.

if response.statuscode == 200:
print(‘게시글을 성공적으로 가져왔어요:’, response.json())
else:
print(‘오류 발생:’, response.status
code, response.text)

이렇게 하면 API 요청 중 발생할 수 있는 오류를 미리 파악하고 적절한 처리를 할 수 있어요.

상태 코드 설명
200 요청 성공
201 리소스 생성 성공
400 잘못된 요청
404 찾을 수 없는 리소스
500 서버 오류

결론

이제 파이썬을 사용하여 API 요청과 응답 데이터를 효과적으로 다루는 방법에 대해 잘 알고 계실 거예요. API는 데이터를 매우 유연하게 활용할 수 있는 도구로, 이를 통해 다양한 서비스를 통합하고 데이터를 추출할 수 있어요.

API를 처음 사용한다면, 다양한 API를 직접 사용해보면서 실습을 해보시는 것을 추천해요. 새로운 데이터를 자유롭게 다루는 즐거움을 느낄 수 있을 거예요.

앞으로 API를 활용하여 여러분의 프로젝트에 더 많은 가능성을 열어보세요!