pandas로 빠르고 간편한 데이터 적재
Amany Mahfouz
Instructor



requests.get()
requests.get(url_string) 사용params: API 요청을 맞춤화할 매개변수-값 딕셔너리headers: 딕셔너리, 사용자 인증에 사용 가능response 객체response.json()은 JSON 데이터만 반환response.json()은 딕셔너리를 반환read_json()은 딕셔너리가 아닌 문자열을 기대함pd.DataFrame()으로 응답 JSON을 데이터프레임에 적재read_json()을 쓰면 오류 발생!





import requests import pandas as pdapi_url = "https://api.yelp.com/v3/businesses/search"# 문서에 따라 매개변수 딕셔너리 설정 params = {"term": "bookstore", "location": "San Francisco"}# 문서에 따라 API 키가 포함된 헤더 딕셔너리 설정 headers = {"Authorization": "Bearer {}".format(api_key)}# API 호출 response = requests.get(api_url, params=params, headers=headers)
# response 객체에서 JSON 데이터만 분리
data = response.json()
print(data)
{'businesses': [{'id': '_rbF2ooLcMRA7Kh8neIr4g', 'alias': 'city-lights-bookstore-san-francisco', 'name': 'City Lights Bookstore', 'image_url': 'https://s3-media1.fl.yelpcdn.com/bphoto/VRydkkpVbA3CeVLBKzs2Vw/o.jpg', 'is_closed': False,
# businesses 데이터를 데이터프레임으로 로드
bookstores = pd.DataFrame(data["businesses"])
print(bookstores.head(2))
alias ... url
0 city-lights-bookstore-san-francisco ... https://www.yelp.com/biz/city-lights-bookstore...
1 alexander-book-company-san-francisco ... https://www.yelp.com/biz/alexander-book-compan...
[2 rows x 16 columns]
pandas로 빠르고 간편한 데이터 적재