파이썬 requests 라이브러리를 사용할 때 간혹 요청 대상 사이트의 URL 설계에 따라 같은 이름의 URL 파라미터명을 사용하는 경우가 있다. 즉, 아래와 같은 URL인데, item
이라는 이름으로 여러 값을 전달하도록 돼 있는 경우다.
https://example.com?action=buy&item=사과&item=바나나&item=딸기
그런데 무심코 해당 부분을 다음과 같이 뽑아서 요청을 보냈더니 이름이 같아서 값 하나만 전송되는 결과가 발생했다.
data = {
'action': 'buy',
'item': '사과',
'item': '바나나',
'item': '딸기',
}
resp = session.get(url, params=data)
그래서 구글링해보니 위와 같은 경우에는 다음과 같이 리스트 타입으로 지정하면 처음 의도한 바대로 전송된다.
data = {
'action': 'buy',
'item': ['사과', '바나나', '딸기'],
}
resp = session.get(url, params=data)