반응형
썸네일
Albums API를 사용하기 위해서는 먼저 artist id 값이 필요하다
→ Search API requet 값에서 id 가져오기!
https://hellominji.tistory.com/55
Pagination
- 한정된 네트워크 자원을 효율적으로 활용하기 위해, 쿼리의 결과값으로 리턴된 리소스를 분할하여 전달하는 것
- 데이터가 많고, 한 번에 가져올 수 있는 데이터의 양은 한정되어 있을 때, 페이지네이션 핸들링을 통해 일정 길이로 끊어서 전달
- 현재의 위치를 의미하는 offset, 한번 응답 시 돌려줄 갯수를 의미하는 limit, 두 가지의 파라미터를 활용
- 여기서는 가져와야 하는 앨범 리스트가 10,000개면 모두 한번에 보여주는 것이 아닌 100개씩 분할하여 보여주는 것이라고 이해하면 된다.
- Spotify Albums API에서의 paging object : dict 형태인 response 값에 대해 각 key에 대한 설명
- href : request url
- item : requet data list
- limit
- next : 다음 정보를 위한 url
- offset : 시작점
- total : 전체 앨범 수
! 목표
앨범 데이터를 가져온다. (list 형태)
Spotify Albums API 사용
r = requests.get("https://api.spotify.com/v1/artists/3Nrfpe0tUJi4K4DXYWgMUX/albums", headers=headers)
# 3Nrfpe0tUJi4K4DXYWgMUX : id값
raw = json.loads(r.text)
total = raw['total']
offset = raw['offset']
limit = raw['limit']
next = raw['next']
albums = []
albums.extend(raw['items']) # 현재까지 가져온 item을 albums 리스트에 추가
limit default = 20
☞ 그보다 많은 데이터를 가져오기 위해서는 아래의 과정이 필요하다.
## 100개 추출하는 경우
count = 0
while count < 100 or not next:
r = requests.get(raw['next'], headers=headers) # 위와 다른 r. 새로운 요청을 했기 때문에 offset부터 새로 추출!
raw = json.loads(r.text)
next = raw['next']
print(next)
albums.extend(raw['items'])
count = len(albums)
print(len(albums))
이런 내용이 더 있으면 좋겠다, 이건 뭐라는지 모르겠다, 그 외의 어떤 얘기든 댓글로 남겨주세요!
반응형
'Data Science : Study > 2. Data Engineering (FastCampus)' 카테고리의 다른 글
4강-2. AWS에서 생성한 MySQL 데이터베이스 연결 (0) | 2022.05.12 |
---|---|
4강-1. AWS MySQL 데이터베이스 생성 (0) | 2022.05.06 |
3강-4. Python Search API 사용해보기 (Spotify) (0) | 2022.05.04 |
3강-3. Python API 토큰 가져오기 (Spotify) (1) | 2022.05.03 |
3강-2. Spotify Web API (0) | 2022.05.02 |