본문 바로가기
Backend/Python

[Python] Requests 패키지 요청 별 활용 방법

by 천우산__ 2025. 1. 23.

Python의 requests 라이브러리는 HTTP 요청을 보낼 때 데이터를 전달하기 위해 json, data, params 의 옵션이 존재합니다.

이들은 각각 사용하는 목적과 방식이 다릅니다. 

 

1. params: URL 쿼리 문자열에 데이터를 추가

 

사용 목적: GET 요청이나 URL에 데이터를 추가할 때 사용됩니다.

전송 방식: 쿼리 문자열로 데이터를 URL에 포함합니다.

요청 예시

import requests

url = "https://example.com/api"
params = {"key1": "value1", "key2": "value2"}

response = requests.get(url, params=params)
print(response.url)

 

출력 예시

https://example.com/api?key1=value1&key2=value2

 

주 사용 목적: 검색어, 필터링, 페이징 등 URL에 데이터를 포함할 때.

 

2. data: HTTP 본문에 폼 데이터 전송

 

사용 목적: POST 요청 등에서 데이터를 application/x-www-form-urlencoded 형식으로 전송할 때 사용됩니다.

전송 방식: HTTP 요청 본문에 데이터를 URL 인코딩된 키-값 쌍으로 포함.

요청 예시

import requests

url = "https://example.com/api"
data = {"key1": "value1", "key2": "value2"}

response = requests.post(url, data=data)
print(response.text)

 

주 사용 목적: 웹 폼 데이터 전송.

 

3. json: HTTP 본문에 JSON 데이터 전송

 

사용 목적: JSON 데이터를 API 서버에 전송할 때 사용됩니다.

전송 방식: HTTP 요청 본문에 JSON 형식으로 데이터를 직렬화하여 포함.

자동으로 Content-Type 헤더 추가: application/json으로 설정.

요청 예시

import requests

url = "https://example.com/api"
json_data = {"key1": "value1", "key2": "value2"}

response = requests.post(url, json=json_data)
print(response.text)

 

주 사용 목적: REST API에서 JSON 형식 데이터를 주고받을 때.

 

4. 요약

옵션 전송 방식 사용 목적 예시
params URL 쿼리 문자열 GET 요청에 데이터 추가 https://example.com?key=value
data HTTP 본문에 URL 인코딩된
키-값 쌍 포함
POST 요청에서 폼 데이터 전송 key=value&key2=value2
json HTTP 본문에 JSON 데이터
직렬화하여 포함
POST/PUT 요청에서 JSON 데이터 전송 {"key": "value", "key2": "value2"}

 

GET 요청에서 데이터를 전달해야 하면 → params.

POST 요청에서 폼 데이터를 전송해야 하면 → data.

POST/PUT 요청에서 JSON 데이터를 전송해야 하면 → json.