Python requests 라이브러리에서 params=params의 의미

Python의 requests 라이브러리에서 사용되는 params=params 구문에 대해 알아보고자 합니다. requests 라이브러리를 사용할 때 이 구문은 관용적으로 사용되는 표현입니다. 아무렇지도 않은 듯이 사용해도 문제가 없지만, 왜 이렇게 작성되는지 궁금한 마음에 공부한 내용을 정리하여 공유하려고 합니다. 이 글에서는 Python requests 라이브러리의 구조와, params 매개변수가 가지는 의미 그리고 params = params 구문이 사용되는 이유를 살펴보겠습니다.

  • python requests 라이브러리의 기본 구조
  • params 매개변수는 무엇을 의미할까?
  • params=params 구문, 왜 이렇게 작성할까?

Python requests 라이브러리의 기본 구조

Python requests는 HTTP 요청을 쉽게 처리할 수 있도록 설계된 라이브러리입니다. 이 라이브러리를 이용하면 웹 서버와 데이터를 주고받는 과정을 간단한 코드로 구현할 수 있습니다.

  • 간편한 HTTP 요청 : GET, POST, PUT, DELETE 등 다양한 HTTP 메서드를 지원.
  • 직관적인 API : 코드 가독성이 뛰어남

requests는 python의 표준 라이브러리가 아니기 때문에, 먼저 설치해야 합니다.

pip install requests

requests 라이브러리의 get 메서드를 활용한 기본 구조는 다음과 같습니다.

import requests

response = requests.get(url, params=params)
  • url = 요청을 보낼 대상 URL
  • params = get 요청 시 사용할 파라미터 값

params 매개변수는 무엇을 의미할까?

requests 라이브러리를 이용해 웹 크롤링이나 데이터를 요청하는 코드를 살펴보면, 종종 params라는 매개변수가 등장합니다. 이 변 수는 key와 value 값이 나열된 딕셔너리 형태로 작성되며, 다음과 같은 예시로 볼 수 있습니다.

params ={"category":"books","sort":"price","page":2}

params는 get 요청에서 서버로 전달할 조건을 지정하기 위해 사용됩니다. 예를 위의 코드를 보면

  • category : 요청하려는 데이터의 카테고리
  • sort : 데이터를 정렬하는 기준
  • page : 요청하려는 페이지 번호

그렇다면 왜 params 매개변수를 사용하는 것일까요? params를 활용하면 ur에 원하는 조건을 자동으로 추가할 수 있습니다. 직접 url을 수정하지 않아도 되기 때문에 코드 작성이 간단해지고 유지 보수성이 높아집니다.

response = requests.get("https://example.com, params=params)

최종 요청 url은 다음과 같이 생성됩니다.

https://example.com/api?category=books&sort=price&page=2

params=params 구문, 왜 이렇게 작성할까?

requests 라이브러리에서 http get 요청을 보낼 때 자주 등장하는 params = params 구문은 python의 함수 호출 문법과 관련이 있습니다. 이 구문을 처음 접할 때 “왜 같은 이름을 두 번 써야 할까?라는 의문을 불러일으킬 수 있습니다. 아래와 같은 형태로 코드를 작성해도 문제없을 텐데 말이죠

response = requests.get("https://example.com, params)

하지만 파이썬의 문법 규칙에 따라 params라는 변수를 get 메서드의 인자로 바로 사용할 수 없으며, params라는 정의된 매개변수에 할당 후 사용하도록 하고 있습니다. params = params 의미를 보다 정확히 이해하기 위해 다음과 같이 구분할 수 있습니다.

  • 왼쪽의 params : requests.get 함수에서 정의된 매개변수 이름
  • 오른쪽의 params : 사용자가 정의한 변수 이름

여기서 우리가 알 수 있는 사실은 왼쪽의 params는 수정할 수 없으나 오른쪽의 params는 조건의 변수를 어떻게 작성하느냐 따라 다른 값이 나올 수 있다는 사실입니다.

관용적인 params=params 구문이 어떤 원리로 작성되는지에 대해 확인해 봤습니다. 앞으로는 params 구문이 등장하더라도 당황하지 말고 적극 활용해 가독성 있는 코드 작성하시기 바랍니다.

Leave a Comment