API 기반 크롤링을 할때 Response.read() 를 수행 후json.load(responseDecode) 를 하는 이유에 대하여

강준호·2023년 3월 22일
0

헷갈리는

목록 보기
8/14

API 기반 크롤링을 할때 Response.read() 를 수행 후json.load(responseDecode) 두가지 과정을 보통 거친다.

네이버 검색 시스템 의 예시)

이유

  • API에서 데이터를 검색한 다음 데이터를 사용 가능한 형식으로 구문 분석하기 위해서

상세설명

Response.read()

  • API 요청을 한 후 서버의 응답에서 raw 데이터를 읽는데, 이 데이터는 일반적으로 바이트 형식이기 때문!

json.load(responseDecode)

  • 위에서 받은 바이트 형식(JSON 개체 또는 배열의 문자열 표현)을 사전 또는 목록과 같은 Python 데이터 구조로 구문 분석하는 것

  • responseDecode 변수는 responseDecode = response.read().decode('utf-8')를 사용하면 바이트가 JSON 데이터의 문자열 표현으로 변환된다

정리

  • 첫 번째 단계는 서버에서 원시 데이터를 읽는 것이고,
  • 두 번째 단계는 작업하기 쉽도록 Python 데이터 구조로 구문 분석하는 것!

궁금증

json.load(responseDecode)없이 JSON을 바로 받아서 써도 되지 않나??

  • 내장 json 라이브러리를 사용하여 JSON 데이터를 직접 처리할 수 있지만! 여전히 원시 응답 데이터를 JSON 개체로 로드하기 전에 바이트에서 문자열로 디코딩해야 한다.

  • 그 이유는 json 라이브러리는 JSON 데이터의 "문자열 표현"을 기대하기 때문! => 디코딩이 필수다.

0개의 댓글