[아이티윌 빅데이터 52기] LAB 12 | 웹 데이터 수집하기 | 네이버 트렌드 데이터 API
[아이티윌 빅데이터 52기] LAB 12 | 웹 데이터 수집하기 | 네이버 트렌드 데이터 API
네이버 API 데이터 사전 준비
STEP 1. 네이버 개발자 사이트에 들어와 로그인 한다
STEP 2. 키 발급을 위해 앱 생성창에 필요한 정보를 입력
STEP 3. 등록 후 개인 CLIENT 키 확인
STEP 4. Documents 메뉴 > 통합 검색어 트렌드 > API 레퍼런스 에서 기본 url 및 관련 명세서 확인
STEP 1. 네이버 개발자 사이트에 들어와 로그인 한다

STEP 2. 키 발급을 위해 앱 생성창에 필요한 정보를 입력

STEP 3. 등록 후 개인 CLIENT 키 확인

STEP 4. Documents 메뉴 > 통합 검색어 트렌드 > API 레퍼런스 에서 기본 url 및 관련 명세서 확인


============================================================
네이버 검색어 API 데이터 가져오기
STEP 1. 라이브러리 참조하기
STEP 2. 요청 정보 확인 및 구성
STEP 3. 웹 데이터 요청하기
STEP 4. 응답 결과 1차 확인
STEP 5 1차 결과 재구성 (2차원 구조를 1차원 구조로 전처리)
STEP 6 최종 데이터 세트를 데이터 프레임으로 변환
STEP 1. 라이브러리 참조하기
요청 파라미터를 json 형식으로 전달하기 위해서 json 라이브러리를 추가한다
import requests
import json
import datetime as dt
from pandas import DataFrame
STEP 2. 요청 정보 확인 및 구성
필수 전달 요소들로는 startDate, endDate, timeUnit,keywordGroups 등이 있다
우선 기본 요청 url 과 인증키 등을 변수로 만든 다음
날짜 객체를 사용하여 오늘 날짜 taday, 그리고 거기서 365일을 뺀 1년 전의 날짜 데이터를 가져온다.
keywordGroups 의 경우 array(json) 이라고 써져 있는데
이는 배열 안에 딕셔너리가 있고, 또 그 안에 리스트 형태의 데이터가 있음을 확인
위의 전달 파라미터들을 명세서의 요청사항에 따라 json 형식 으로, 즉 딕셔너리로 전달한다


#요청 url
url = "https://openapi.naver.com/v1/datalab/search"
#네이버 인증키
clientId = "생략"
clientSecret ="생략"
#필수 파라미터인 날짜 변수 생성(오늘 날짜와 1년 전 날짜)
now = dt.datetime.now()
today = now.strftime("%Y-%m-%d")
startDateDelta = now -dt.timedelta(days=365)
startDate = startDateDelta.strftime("%Y-%m-%d")
data = {
"startDate": startDate, # 검색 시작일
"endDate": today, # 검색 종료일
"timeUnit": "date", # date: 일간, week: 주간, month: 월간
"keywordGroups": [
{
"groupName": "Benz", # 검색주제
# 주제와 관련된 검색어
"keywords": ["벤츠", "e클래스", "s클래스", "c클래스", "벤츠 cls"]
},
{
"groupName": "BMW",
"keywords": ["BMW", "5시리즈", "x5", "x7", "x3"]
},
{
"groupName": "AUDI",
"keywords": ["아우디", "a6", "e트론", "a7", "q5"]
}
]
}
STEP 3. 웹 데이터 요청하기
명세서의 요구에 따라 헤더에 client-id 와 secret 항목을 추가한다 (위에서 변수 생성 완료)
그리고 post 형식으로 웹 서버와 통신한다
(get 형식은 url 길이 제한도 있고, 복잡한 구조에는 한계가 있기 떄문에, post 가 단순 데이터 저장 목적이 아닌, 복잡한 데이터를 본문에 담아 보내는 역할로 post 형식이 쓰인 것)
- GET은 데이터를 “주소(URL)”에만 붙여서 보냅니다.
- 특징:
- URL에 모든 정보가 노출됨 (누구나 볼 수 있음)
- Body(본문)가 없음
- 주소가 길면 한계에 걸릴 수 있음 (브라우저, 서버마다 보통 2KB ~ 4KB 제한)
- POST는 데이터를 “요청 본문(body)”에 JSON이나 form 형식으로 담아서 보냅니다.
- 특징:
- URL은 짧고 깔끔함
- 실제 내용(JSON)은 “본문(body)”에 들어있음
- URL에는 아무것도 안 보이지만, 서버는 body를 읽어서 처리
- 대용량, 복잡한 데이터도 전달 가능


with requests.Session() as session:
session.headers.update({
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
"X-Naver-Client-Id": clientId,
"X-Naver-Client-Secret": clientSecret
})
r = session.post(url, data=json.dumps(data))
if r.status_code != 200:
msg = "[%d Error] %s 에러가 발생함" % (r.status_code, r.reason)
raise Exception(msg)
print(r)
STEP 4. 응답 결과 1차 확인
1차적으로 가져와진 데이터 형태는 리스트로 딕셔너리가 감싸져 있고, 또 그 안에 data 키는 또 다른 리스트와 딕셔너리로 감싸져 있음. 우리가 필요한 ratio 데이터를 가져오기 위해서는 2차원 데이터를 1차원으로 전처리를 해줘야함
r.encoding ="utf-8"
mydict = r.json()
mydict["results"]

STEP 5 1차 결과 재구성 (2차원 구조를 1차원 구조로 전처리)
바로 위의 결과가 mydict["results"] 였으니, 우선 1차적으로 해당 항목의 리스트를 풀어주면
#mydict["results"]
[{'title': 'Benz',
'keywords': ['벤츠', 'e클래스', 's클래스', 'c클래스', '벤츠 cls'],
'data': [{'period': '2024-11-05', 'ratio': 48.51157},
{'period': '2024-11-06', 'ratio': 46.14799},
{'period': '2024-11-07', 'ratio': 46.34048},
{'period': '2024-11-08', 'ratio': 46.30019},
{'period': '2024-11-09', 'ratio': 51.06763},
{'period': '2024-11-10', 'ratio': 49.85003},
{'period': '2024-11-11', 'ratio': 50.4454},
{'period': '2024-11-12', 'ratio': 50.13653},
{'period': '2024-11-13', 'ratio': 49.97985},
{'period': '2024-11-14', 'ratio': 63.47643},
{'period': '2024-11-15', 'ratio': 49.86346},
{'period': '2024-11-16', 'ratio': 51.58243},
#1차 반복문으로 풀어진 결과 즉, item 은 이런 형태
{'title': 'AUDI',
'keywords': ['아우디', 'a6', 'e트론', 'a7', 'q5'],
'data': [{'title': 'AUDI', 'period': '2024-11-05', 'ratio': 24.74595},
{'title': 'AUDI', 'period': '2024-11-06', 'ratio': 22.61515},
{'title': 'AUDI', 'period': '2024-11-07', 'ratio': 22.92403},
{'title': 'AUDI', 'period': '2024-11-08', 'ratio': 22.90165},
{'title': 'AUDI', 'period': '2024-11-09', 'ratio': 24.16401}, {'title': 'AUDI', 'period': '2024-11-10', 'ratio': 24.27592}, {'title': 'AUDI', 'period': '2024-11-11', 'ratio': 24.09239}, {'title': 'AUDI', 'period': '2024-11-12', 'ratio': 26.91257}, {'title': 'AUDI', 'period': '2024-11-13', 'ratio': 25.37266}, {'title': 'AUDI', 'period': '2024-11-14', 'ratio': 24.24907}, {'title': 'AUDI', 'period': '2024-11-15', 'ratio': 23.09861}, {'title': 'AUDI', 'period': '2024-11-16', 'ratio': 23.16128}, {'title': 'AUDI', 'period': '2024-11-17', 'ratio': 25.18913}, {'title': 'AUDI', 'period': '2024-11-18', 'ratio': 26.09785}, {'title': 'AUDI', 'period': '2024-11-19', 'ratio': 25.07274}, {'title': 'AUDI', 'period': '2024-11-20', 'ratio': 24.47289}, {'title': 'AUDI', 'period': '2024-11-21', 'ratio': 23.64474}, {'title': 'AUDI', 'period': '2024-11-22', 'ratio': 23.17919}, {'title': 'AUDI', 'period': '2024-11-23', 'ratio': 22.01083}, {'title': 'AUDI', 'period': '2024-11-24', 'ratio': 22.40923}, {'title': 'AUDI', 'period': '2024-11-25', 'ratio': 23.62684}, {'title': 'AUDI', 'period': '2024-11-26', 'ratio': 22.90165}, {'title': 'AUDI', 'period': '2024-11-27', 'ratio': 23.48359}, {'title': 'AUDI', 'period': '2024-11-28', 'ratio': 24.36993}, {'title': 'AUDI', 'period': '2024-11-29', 'ratio': 23.56864}, {'title': 'AUDI', 'period': '2024-11-30', 'ratio': 22.46295}, {'title': 'AUDI', 'period': '2024-12-01', 'ratio': 23.75665}, {'title': 'AUDI', 'period': '2024-12-02', 'ratio': 23.30005}, {'title': 'AUDI', 'period': '2024-12-03', 'ratio': 21.97502}, {'title': 'AUDI', 'period': '2024-12-04', 'ratio': 19.45924}, {'title': 'AUDI', 'period': '2024-12-05', 'ratio': 21.84072}, {'title': 'AUDI', 'period': '2024-12-06', 'ratio': 21.02153}, {'title': 'AUDI', 'period': '2024-12-07', 'ratio': 20.69474}, {'title': 'AUDI', 'period': '2024-12-08', 'ratio': 21.05286}, {'title': 'AUDI', 'period': '2024-12-09', 'ratio': 21.59899}, {'title': 'AUDI', 'period': '2024-12-10', 'ratio': 20.89619}, {'title': 'AUDI', 'period': '2024-12-11', 'ratio': 22.16303}, {'title': 'AUDI', 'period': '2024-12-12', 'ratio': 23.60893}, {'title': 'AUDI', 'period': '2024-12-13', 'ratio': 25.23389}, {'title': 'AUDI', 'period': '2024-12-14', 'ratio': 23.53731}, {'title': 'AUDI', 'period': '2024-12-15', 'ratio': 24.52213}, {'title': 'AUDI', 'period': '2024-12-16', 'ratio': 26.68427}, {'title': 'AUDI', 'period': '2024-12-17', 'ratio': 24.31174}, {'title': 'AUDI', 'period': '2024-12-18', 'ratio': 25.24284}, {'title': 'AUDI', 'period': '2024-12-19', 'ratio': 25.6323}, {'title': 'AUDI', 'period': '2024-12-20', 'ratio': 24.17297}, {'title': 'AUDI', 'period': '2024-12-21', 'ratio': 23.17471}, {'title': 'AUDI', 'period': '2024-12-22', 'ratio': 23.77904}, {'title': 'AUDI', 'period': '2024-12-23', 'ratio': 23.37615}, {'title': 'AUDI', 'period': '2024-12-24', 'ratio': 23.55969}, {'title': 'AUDI', 'period': '2024-12-25', 'ratio': 24.18192}, {'title': 'AUDI', 'period': '2024-12-26', 'ratio': 23.65817}, {'title': 'AUDI', 'period': '2024-12-27', 'ratio': 22.26599}, {'title': 'AUDI', 'period': '2024-12-28', 'ratio': 22.97327}, {'title': 'AUDI', 'period': '2024-12-29', 'ratio': 22.23913}, {'title': 'AUDI', 'period': '2024-12-30', 'ratio': 26.38435}, {'title': 'AUDI', 'period': '2024-12-31', 'ratio': 24.90711}, {'title': 'AUDI', 'period': '2025-01-01', 'ratio': 24.39231}, {'title': 'AUDI', 'period': '2025-01-02', 'ratio': 23.29558}, {'title': 'AUDI', 'period': '2025-01-03', 'ratio': 22.57039}, {'title': 'AUDI', 'period': '2025-01-04', 'ratio': 22.0153}, {'title': 'AUDI', 'period': '2025-01-05', 'ratio': 21.56766}, {'title': 'AUDI', 'period': '2025-01-06', 'ratio': 22.44057}, {'title': 'AUDI', 'period': '2025-01-07', 'ratio': 23.02251}, {'title': 'AUDI', 'period': '2025-01-08', 'ratio': 21.1782}, {'title': 'AUDI', 'period': '2025-01-09', 'ratio': 21.2364}, {'title': 'AUDI', 'period': '2025-01-10', 'ratio': 21.66614}, {'title': 'AUDI', 'period': '2025-01-11', 'ratio': 21.9392}, {'title': 'AUDI', 'period': '2025-01-12', 'ratio': 23.39854}, {'title': 'AUDI', 'period': '2025-01-13', 'ratio': 25.94565}, {'title': 'AUDI', 'period': '2025-01-14', 'ratio': 25.87403}, {'title': 'AUDI', 'period': '2025-01-15', 'ratio': 24.06553}, {'title': 'AUDI', 'period': '2025-01-16', 'ratio': 24.07001}, {'title': 'AUDI', 'period': '2025-01-17', 'ratio': 22.39133}, {'title': 'AUDI', 'period': '2025-01-18', 'ratio': 23.40749}, {'title': 'AUDI', 'period': '2025-01-19', 'ratio': 23.16576}, {'title': 'AUDI', 'period': '2025-01-20', 'ratio': 23.52388}, {'title': 'AUDI', 'period': '2025-01-21', 'ratio': 23.09861}, {'title': 'AUDI', 'period': '2025-01-22', 'ratio': 24.52661}, {'title': 'AUDI', 'period': '2025-01-23', 'ratio': 24.44155}, {'title': 'AUDI', 'period': '2025-01-24', 'ratio': 22.75392}, {'title': 'AUDI', 'period': '2025-01-25', 'ratio': 22.11379}, {'title': 'AUDI', 'period': '2025-01-26', 'ratio': 26.09337}, {'title': 'AUDI', 'period': '2025-01-27', 'ratio': 24.51765}, {'title': 'AUDI', 'period': '2025-01-28', 'ratio': 23.51492}, {'title': 'AUDI', 'period': '2025-01-29', 'ratio': 25.90089}, {'title': 'AUDI', 'period': '2025-01-30', 'ratio': 25.99937}, {'title': 'AUDI', 'period': '2025-01-31', 'ratio': 25.56963}, {'title': 'AUDI', 'period': '2025-02-01', 'ratio': 26.49626}, {'title': 'AUDI', 'period': '2025-02-02', 'ratio': 24.96083}, {'title': 'AUDI', 'period': '2025-02-03', 'ratio': 23.5194}, {'title': 'AUDI', 'period': '2025-02-04', 'ratio': 22.53458}, {'title': 'AUDI', 'period': '2025-02-05', 'ratio': 22.18989}, {'title': 'AUDI', 'period': '2025-02-06', 'ratio': 22.02873}, {'title': 'AUDI', 'period': '2025-02-07', 'ratio': 22.70021}, {'title': 'AUDI', 'period': '2025-02-08', 'ratio': 21.77805}, {'title': 'AUDI', 'period': '2025-02-09', 'ratio': 22.61515}, {'title': 'AUDI', 'period': '2025-02-10', 'ratio': 24.13715}, {'title': 'AUDI', 'period': '2025-02-11', 'ratio': 22.90165}, {'title': 'AUDI', 'period': '2025-02-12', 'ratio': 23.38958}, {'title': 'AUDI', 'period': '2025-02-13', 'ratio': 24.24011}, {'title': 'AUDI', 'period': '2025-02-14', 'ratio': 23.33139}, {'title': 'AUDI', 'period': '2025-02-15', 'ratio': 26.64846}, {'title': 'AUDI', 'period': '2025-02-16', 'ratio': 30.67281}, {'title': 'AUDI', 'period': '2025-02-17', 'ratio': 26.31272}, {'title': 'AUDI', 'period': '2025-02-18', 'ratio': 28.48829}, {'title': 'AUDI', 'period': '2025-02-19', 'ratio': 27.61538}, {'title': 'AUDI', 'period': '2025-02-20', 'ratio': 25.58306}, {'title': 'AUDI', 'period': '2025-02-21', 'ratio': 26.0889}, {'title': 'AUDI', 'period': '2025-02-22', 'ratio': 25.52486}, {'title': 'AUDI', 'period': '2025-02-23', 'ratio': 24.76386}, {'title': 'AUDI', 'period': '2025-02-24', 'ratio': 24.39679}, {'title': 'AUDI', 'period': '2025-02-25', 'ratio': 25.7084}, {'title': 'AUDI', 'period': '2025-02-26', 'ratio': 23.73427}, {'title': 'AUDI', 'period': '2025-02-27', 'ratio': 24.4147}, {'title': 'AUDI', 'period': '2025-02-28', 'ratio': 25.24732}, {'title': 'AUDI', 'period': '2025-03-01', 'ratio': 24.92054}, {'title': 'AUDI', 'period': '2025-03-02', 'ratio': 25.09512}, {'title': 'AUDI', 'period': '2025-03-03', 'ratio': 23.00908}, {'title': 'AUDI', 'period': '2025-03-04', 'ratio': 23.66712}, {'title': 'AUDI', 'period': '2025-03-05', 'ratio': 25.21598}, {'title': 'AUDI', 'period': '2025-03-06', 'ratio': 28.27342}, {'title': 'AUDI', 'period': '2025-03-07', 'ratio': 24.69224}, {'title': 'AUDI', 'period': '2025-03-08', 'ratio': 27.90635}, {'title': 'AUDI', 'period': '2025-03-09', 'ratio': 25.8606}, {'title': 'AUDI', 'period': '2025-03-10', 'ratio': 25.16227}, {'title': 'AUDI', 'period': '2025-03-11', 'ratio': 23.16576}, {'title': 'AUDI', 'period': '2025-03-12', 'ratio': 24.32517}, {'title': 'AUDI', 'period': '2025-03-13', 'ratio': 23.00013}, {'title': 'AUDI', 'period': '2025-03-14', 'ratio': 21.68852}, {'title': 'AUDI', 'period': '2025-03-15', 'ratio': 23.47911}, {'title': 'AUDI', 'period': '2025-03-16', 'ratio': 25.63677}, {'title': 'AUDI', 'period': '2025-03-17', 'ratio': 24.47289}, {'title': 'AUDI', 'period': '2025-03-18', 'ratio': 25.78002}, {'title': 'AUDI', 'period': '2025-03-19', 'ratio': 23.48359}, {'title': 'AUDI', 'period': '2025-03-20', 'ratio': 24.82653}, {'title': 'AUDI', 'period': '2025-03-21', 'ratio': 27.16773}, {'title': 'AUDI', 'period': '2025-03-22', 'ratio': 26.36196}, {'title': 'AUDI', 'period': '2025-03-23', 'ratio': 26.32615}, {'title': 'AUDI', 'period': '2025-03-24', 'ratio': 23.77456}, {'title': 'AUDI', 'period': '2025-03-25', 'ratio': 23.27319}, {'title': 'AUDI', 'period': '2025-03-26', 'ratio': 22.74049}, {'title': 'AUDI', 'period': '2025-03-27', 'ratio': 23.09414}, {'title': 'AUDI', 'period': '2025-03-28', 'ratio': 33.43927}, {'title': 'AUDI', 'period': '2025-03-29', 'ratio': 25.15779}, {'title': 'AUDI', 'period': '2025-03-30', 'ratio': 23.64027}, {'title': 'AUDI', 'period': '2025-03-31', 'ratio': 22.82107}, {'title': 'AUDI', 'period': '2025-04-01', 'ratio': 21.8631}, {'title': 'AUDI', 'period': '2025-04-02', 'ratio': 23.16128}, {'title': 'AUDI', 'period': '2025-04-03', 'ratio': 22.99118}, {'title': 'AUDI', 'period': '2025-04-04', 'ratio': 21.88996}, {'title': 'AUDI', 'period': '2025-04-05', 'ratio': 23.89542}, {'title': 'AUDI', 'period': '2025-04-06', 'ratio': 21.59004}, {'title': 'AUDI', 'period': '2025-04-07', 'ratio': 22.08245}, {'title': 'AUDI', 'period': '2025-04-08', 'ratio': 22.44505}, {'title': 'AUDI', 'period': '2025-04-09', 'ratio': 24.06105}, {'title': 'AUDI', 'period': '2025-04-10', 'ratio': 22.82107}, {'title': 'AUDI', 'period': '2025-04-11', 'ratio': 21.96606}, {'title': 'AUDI', 'period': '2025-04-12', 'ratio': 23.17471}, {'title': 'AUDI', 'period': '2025-04-13', 'ratio': 23.49254}, {'title': 'AUDI', 'period': '2025-04-14', 'ratio': 25.43533}, {'title': 'AUDI', 'period': '2025-04-15', 'ratio': 26.58131}, {'title': 'AUDI', 'period': '2025-04-16', 'ratio': 26.15604}, {'title': 'AUDI', 'period': '2025-04-17', 'ratio': 27.93321}, {'title': 'AUDI', 'period': '2025-04-18', 'ratio': 27.33783}, {'title': 'AUDI', 'period': '2025-04-19', 'ratio': 25.00559}, {'title': 'AUDI', 'period': '2025-04-20', 'ratio': 24.24011}, {'title': 'AUDI', 'period': '2025-04-21', 'ratio': 26.12471}, {'title': 'AUDI', 'period': '2025-04-22', 'ratio': 25.16674}, {'title': 'AUDI', 'period': '2025-04-23', 'ratio': 24.24459}, {'title': 'AUDI', 'period': '2025-04-24', 'ratio': 23.03594}, {'title': 'AUDI', 'period': '2025-04-25', 'ratio': 22.63753}, {'title': 'AUDI', 'period': '2025-04-26', 'ratio': 20.96333}, {'title': 'AUDI', 'period': '2025-04-27', 'ratio': 21.38412}, {'title': 'AUDI', 'period': '2025-04-28', 'ratio': 20.86933}, {'title': 'AUDI', 'period': '2025-04-29', 'ratio': 22.66887}, {'title': 'AUDI', 'period': '2025-04-30', 'ratio': 24.05658}, {'title': 'AUDI', 'period': '2025-05-01', 'ratio': 27.06029}, {'title': 'AUDI', 'period': '2025-05-02', 'ratio': 25.58306}, {'title': 'AUDI', 'period': '2025-05-03', 'ratio': 25.30551}, {'title': 'AUDI', 'period': '2025-05-04', 'ratio': 23.882}, {'title': 'AUDI', 'period': '2025-05-05', 'ratio': 25.95908}, {'title': 'AUDI', 'period': '2025-05-06', 'ratio': 25.6323}, {'title': 'AUDI', 'period': '2025-05-07', 'ratio': 27.9153}, {'title': 'AUDI', 'period': '2025-05-08', 'ratio': 27.41841}, {'title': 'AUDI', 'period': '2025-05-09', 'ratio': 26.36196}, {'title': 'AUDI', 'period': '2025-05-10', 'ratio': 27.11849}, {'title': 'AUDI', 'period': '2025-05-11', 'ratio': 26.90362}, {'title': 'AUDI', 'period': '2025-05-12', 'ratio': 28.45248}, {'title': 'AUDI', 'period': '2025-05-13', 'ratio': 28.7345}, {'title': 'AUDI', 'period': '2025-05-14', 'ratio': 28.01378}, {'title': 'AUDI', 'period': '2025-05-15', 'ratio': 26.79618}, {'title': 'AUDI', 'period': '2025-05-16', 'ratio': 25.57858}, {'title': 'AUDI', 'period': '2025-05-17', 'ratio': 25.41743}, {'title': 'AUDI', 'period': '2025-05-18', 'ratio': 25.82031}, {'title': 'AUDI', 'period': '2025-05-19', 'ratio': 26.07994}, {'title': 'AUDI', 'period': '2025-05-20', 'ratio': 26.51864}, {'title': 'AUDI', 'period': '2025-05-21', 'ratio': 27.86606}, {'title': 'AUDI', 'period': '2025-05-22', 'ratio': 27.65566}, {'title': 'AUDI', 'period': '2025-05-23', 'ratio': 26.0307}, {'title': 'AUDI', 'period': '2025-05-24', 'ratio': 26.49626}, {'title': 'AUDI', 'period': '2025-05-25', 'ratio': 25.02797}, {'title': 'AUDI', 'period': '2025-05-26', 'ratio': 28.94489}, {'title': 'AUDI', 'period': '2025-05-27', 'ratio': 27.02448}, {'title': 'AUDI', 'period': '2025-05-28', 'ratio': 24.23564}, {'title': 'AUDI', 'period': '2025-05-29', 'ratio': 24.67881}, {'title': 'AUDI', 'period': '2025-05-30', 'ratio': 24.08791}, {'title': 'AUDI', 'period': '2025-05-31', 'ratio': 23.85066}, {'title': 'AUDI', 'period': '2025-06-01', 'ratio': 24.90711}, {'title': 'AUDI', 'period': '2025-06-02', 'ratio': 25.76212}, {'title': 'AUDI', 'period': '2025-06-03', 'ratio': 22.83898}, {'title': 'AUDI', 'period': '2025-06-04', 'ratio': 22.61515}, {'title': 'AUDI', 'period': '2025-06-05', 'ratio': 24.98321}, {'title': 'AUDI', 'period': '2025-06-06', 'ratio': 22.40476}, {'title': 'AUDI', 'period': '2025-06-07', 'ratio': 24.29383}, {'title': 'AUDI', 'period': '2025-06-08', 'ratio': 24.36993}, {'title': 'AUDI', 'period': '2025-06-09', 'ratio': 24.73253}, {'title': 'AUDI', 'period': '2025-06-10', 'ratio': 24.01181}, {'title': 'AUDI', 'period': '2025-06-11', 'ratio': 23.58655}, {'title': 'AUDI', 'period': '2025-06-12', 'ratio': 25.28313}, {'title': 'AUDI', 'period': '2025-06-13', 'ratio': 24.9474}, {'title': 'AUDI', 'period': '2025-06-14', 'ratio': 23.83275}, {'title': 'AUDI', 'period': '2025-06-15', 'ratio': 26.6977}, {'title': 'AUDI', 'period': '2025-06-16', 'ratio': 25.05931}, {'title': 'AUDI', 'period': '2025-06-17', 'ratio': 25.04588}, {'title': 'AUDI', 'period': '2025-06-18', 'ratio': 25.95013}, {'title': 'AUDI', 'period': '2025-06-19', 'ratio': 25.54277}, {'title': 'AUDI', 'period': '2025-06-20', 'ratio': 25.03245}, {'title': 'AUDI', 'period': '2025-06-21', 'ratio': 25.91879}, {'title': 'AUDI', 'period': '2025-06-22', 'ratio': 24.95187}, {'title': 'AUDI', 'period': '2025-06-23', 'ratio': 24.63404}, {'title': 'AUDI', 'period': '2025-06-24', 'ratio': 26.09337}, {'title': 'AUDI', 'period': '2025-06-25', 'ratio': 25.74421}, {'title': 'AUDI', 'period': '2025-06-26', 'ratio': 24.77729}, {'title': 'AUDI', 'period': '2025-06-27', 'ratio': 24.17744}, {'title': 'AUDI', 'period': '2025-06-28', 'ratio': 22.94641}, {'title': 'AUDI', 'period': '2025-06-29', 'ratio': 23.35825}, {'title': 'AUDI', 'period': '2025-06-30', 'ratio': 23.73875}, {'title': 'AUDI', 'period': '2025-07-01', 'ratio': 29.59398}, {'title': 'AUDI', 'period': '2025-07-02', 'ratio': 28.97622}, {'title': 'AUDI', 'period': '2025-07-03', 'ratio': 27.94664}, {'title': 'AUDI', 'period': '2025-07-04', 'ratio': 28.97175}, {'title': 'AUDI', 'period': '2025-07-05', 'ratio': 27.37365}, {'title': 'AUDI', 'period': '2025-07-06', 'ratio': 31.71135}, {'title': 'AUDI', 'period': '2025-07-07', 'ratio': 28.04959}, {'title': 'AUDI', 'period': '2025-07-08', 'ratio': 29.75513}, {'title': 'AUDI', 'period': '2025-07-09', 'ratio': 27.50346}, {'title': 'AUDI', 'period': '2025-07-10', 'ratio': 26.42016}, {'title': 'AUDI', 'period': '2025-07-11', 'ratio': 26.0889}, {'title': 'AUDI', 'period': '2025-07-12', 'ratio': 28.9628}, {'title': 'AUDI', 'period': '2025-07-13', 'ratio': 29.93419}, {'title': 'AUDI', 'period': '2025-07-14', 'ratio': 28.45248}, {'title': 'AUDI', 'period': '2025-07-15', 'ratio': 26.60369}, {'title': 'AUDI', 'period': '2025-07-16', 'ratio': 26.65293}, {'title': 'AUDI', 'period': '2025-07-17', 'ratio': 26.58579}, {'title': 'AUDI', 'period': '2025-07-18', 'ratio': 28.35847}, {'title': 'AUDI', 'period': '2025-07-19', 'ratio': 28.47038}, {'title': 'AUDI', 'period': '2025-07-20', 'ratio': 27.31993}, {'title': 'AUDI', 'period': '2025-07-21', 'ratio': 27.59299}, {'title': 'AUDI', 'period': '2025-07-22', 'ratio': 26.26796}, {'title': 'AUDI', 'period': '2025-07-23', 'ratio': 26.4873}, {'title': 'AUDI', 'period': '2025-07-24', 'ratio': 26.87228}, {'title': 'AUDI', 'period': '2025-07-25', 'ratio': 28.43009}, {'title': 'AUDI', 'period': '2025-07-26', 'ratio': 28.75688}, {'title': 'AUDI', 'period': '2025-07-27', 'ratio': 28.50172}, {'title': 'AUDI', 'period': '2025-07-28', 'ratio': 27.46765}, {'title': 'AUDI', 'period': '2025-07-29', 'ratio': 28.49724}, {'title': 'AUDI', 'period': '2025-07-30', 'ratio': 28.42114}, {'title': 'AUDI', 'period': '2025-07-31', 'ratio': 25.09512}, {'title': 'AUDI', 'period': '2025-08-01', 'ratio': 25.72183}, {'title': 'AUDI', 'period': '2025-08-02', 'ratio': 27.06925}, {'title': 'AUDI', 'period': '2025-08-03', 'ratio': 25.39504}, {'title': 'AUDI', 'period': '2025-08-04', 'ratio': 28.33609}, {'title': 'AUDI', 'period': '2025-08-05', 'ratio': 28.91355}, {'title': 'AUDI', 'period': '2025-08-06', 'ratio': 28.69421}, {'title': 'AUDI', 'period': '2025-08-07', 'ratio': 29.63874}, {'title': 'AUDI', 'period': '2025-08-08', 'ratio': 27.90635}, {'title': 'AUDI', 'period': '2025-08-09', 'ratio': 27.51689}, {'title': 'AUDI', 'period': '2025-08-10', 'ratio': 27.65119}, {'title': 'AUDI', 'period': '2025-08-11', 'ratio': 27.76758}, {'title': 'AUDI', 'period': '2025-08-12', 'ratio': 33.48851}, {'title': 'AUDI', 'period': '2025-08-13', 'ratio': 36.63548}, {'title': 'AUDI', 'period': '2025-08-14', 'ratio': 32.42311}, {'title': 'AUDI', 'period': '2025-08-15', 'ratio': 29.66113}, {'title': 'AUDI', 'period': '2025-08-16', 'ratio': 29.59398}, {'title': 'AUDI', 'period': '2025-08-17', 'ratio': 28.05407}, {'title': 'AUDI', 'period': '2025-08-18', 'ratio': 29.29853}, {'title': 'AUDI', 'period': '2025-08-19', 'ratio': 29.49102}, {'title': 'AUDI', 'period': '2025-08-20', 'ratio': 29.2851}, {'title': 'AUDI', 'period': '2025-08-21', 'ratio': 30.72653}, {'title': 'AUDI', 'period': '2025-08-22', 'ratio': 29.39254}, {'title': 'AUDI', 'period': '2025-08-23', 'ratio': 28.46143}, {'title': 'AUDI', 'period': '2025-08-24', 'ratio': 29.43283}, {'title': 'AUDI', 'period': '2025-08-25', 'ratio': 30.82053}, {'title': 'AUDI', 'period': '2025-08-26', 'ratio': 30.37289}, {'title': 'AUDI', 'period': '2025-08-27', 'ratio': 31.34876}, {'title': 'AUDI', 'period': '2025-08-28', 'ratio': 29.19557}, {'title': 'AUDI', 'period': '2025-08-29', 'ratio': 27.29755}, {'title': 'AUDI', 'period': '2025-08-30', 'ratio': 26.85885}, {'title': 'AUDI', 'period': '2025-08-31', 'ratio': 26.4112}, {'title': 'AUDI', 'period': '2025-09-01', 'ratio': 26.34406}, {'title': 'AUDI', 'period': '2025-09-02', 'ratio': 28.09436}, {'title': 'AUDI', 'period': '2025-09-03', 'ratio': 30.09534}, {'title': 'AUDI', 'period': '2025-09-04', 'ratio': 28.63154}, {'title': 'AUDI', 'period': '2025-09-05', 'ratio': 25.98594}, {'title': 'AUDI', 'period': '2025-09-06', 'ratio': 26.61712}, {'title': 'AUDI', 'period': '2025-09-07', 'ratio': 26.60817}, {'title': 'AUDI', 'period': '2025-09-08', 'ratio': 26.89019}, {'title': 'AUDI', 'period': '2025-09-09', 'ratio': 26.57236}, {'title': 'AUDI', 'period': '2025-09-10', 'ratio': 24.92949}, {'title': 'AUDI', 'period': '2025-09-11', 'ratio': 26.8678}, {'title': 'AUDI', 'period': '2025-09-12', 'ratio': 26.36196}, {'title': 'AUDI', 'period': '2025-09-13', 'ratio': 25.39504}, {'title': 'AUDI', 'period': '2025-09-14', 'ratio': 27.04239}, {'title': 'AUDI', 'period': '2025-09-15', 'ratio': 25.81583}, {'title': 'AUDI', 'period': '2025-09-16', 'ratio': 24.99664}, {'title': 'AUDI', 'period': '2025-09-17', 'ratio': 25.01007}, {'title': 'AUDI', 'period': '2025-09-18', 'ratio': 23.98495}, {'title': 'AUDI', 'period': '2025-09-19', 'ratio': 24.2804}, {'title': 'AUDI', 'period': '2025-09-20', 'ratio': 26.91705}, {'title': 'AUDI', 'period': '2025-09-21', 'ratio': 26.42016}, {'title': 'AUDI', 'period': '2025-09-22', 'ratio': 25.2697}, {'title': 'AUDI', 'period': '2025-09-23', 'ratio': 23.5955}, {'title': 'AUDI', 'period': '2025-09-24', 'ratio': 22.49429}, {'title': 'AUDI', 'period': '2025-09-25', 'ratio': 23.25529}, {'title': 'AUDI', 'period': '2025-09-26', 'ratio': 22.46295}, {'title': 'AUDI', 'period': '2025-09-27', 'ratio': 22.35104}, {'title': 'AUDI', 'period': '2025-09-28', 'ratio': 23.02699}, {'title': 'AUDI', 'period': '2025-09-29', 'ratio': 22.91508}, {'title': 'AUDI', 'period': '2025-09-30', 'ratio': 22.20332}, {'title': 'AUDI', 'period': '2025-10-01', 'ratio': 22.78973}, {'title': 'AUDI', 'period': '2025-10-02', 'ratio': 22.24808}, {'title': 'AUDI', 'period': '2025-10-03', 'ratio': 23.10309}, {'title': 'AUDI', 'period': '2025-10-04', 'ratio': 23.0628}, {'title': 'AUDI', 'period': '2025-10-05', 'ratio': 23.10309}, {'title': 'AUDI', 'period': '2025-10-06', 'ratio': 26.86333}, {'title': 'AUDI', 'period': '2025-10-07', 'ratio': 24.80863}, {'title': 'AUDI', 'period': '2025-10-08', 'ratio': 25.50248}, {'title': 'AUDI', 'period': '2025-10-09', 'ratio': 26.30377}, {'title': 'AUDI', 'period': '2025-10-10', 'ratio': 25.65916}, {'title': 'AUDI', 'period': '2025-10-11', 'ratio': 23.71189}, {'title': 'AUDI', 'period': '2025-10-12', 'ratio': 24.31174}, {'title': 'AUDI', 'period': '2025-10-13', 'ratio': 23.54626}, {'title': 'AUDI', 'period': '2025-10-14', 'ratio': 23.18366}, {'title': 'AUDI', 'period': '2025-10-15', 'ratio': 22.2257}, {'title': 'AUDI', 'period': '2025-10-16', 'ratio': 22.11826}, {'title': 'AUDI', 'period': '2025-10-17', 'ratio': 21.98397}, {'title': 'AUDI', 'period': '2025-10-18', 'ratio': 22.35104}, {'title': 'AUDI', 'period': '2025-10-19', 'ratio': 22.05559}, {'title': 'AUDI', 'period': '2025-10-20', 'ratio': 22.48533}, {'title': 'AUDI', 'period': '2025-10-21', 'ratio': 22.06455}, {'title': 'AUDI', 'period': '2025-10-22', 'ratio': 21.03048}, {'title': 'AUDI', 'period': '2025-10-23', 'ratio': 21.91235}, {'title': 'AUDI', 'period': '2025-10-24', 'ratio': 22.13169}, {'title': 'AUDI', 'period': '2025-10-25', 'ratio': 21.41993}, {'title': 'AUDI', 'period': '2025-10-26', 'ratio': 22.3779}, {'title': 'AUDI', 'period': '2025-10-27', 'ratio': 21.95263}, {'title': 'AUDI', 'period': '2025-10-28', 'ratio': 22.06455}, {'title': 'AUDI', 'period': '2025-10-29', 'ratio': 21.46917}, {'title': 'AUDI', 'period': '2025-10-30', 'ratio': 21.81834}, {'title': 'AUDI', 'period': '2025-10-31', 'ratio': 21.51842}, {'title': 'AUDI', 'period': '2025-11-01', 'ratio': 20.73056}, {'title': 'AUDI', 'period': '2025-11-02', 'ratio': 20.69922}, {'title': 'AUDI', 'period': '2025-11-03', 'ratio': 20.64103},
여기서 우리가 필요한 데이터인 ratio 에 접근하기 위해서 data key 에 enumerate 로 접근한다
그러면 위에서 title 이란 변수에 각 키워드 이름을 넣어준 상태이니,
period 와 ratio 만 각 딕셔너리에서 키값으로 접근을 해주고
비워져있는 resultset 리스트에 해당 행을 하나씩 extend 해준다
0 번쨰 {'title': 'AUDI', 'period': '2024-11-05', 'ratio': 24.74595},
1 번쨰 {'title': 'AUDI', 'period': '2024-11-06', 'ratio': 22.61515},
2 번쨰 {'title': 'AUDI', 'period': '2024-11-07', 'ratio': 22.92403},
3 번째{'title': 'AUDI', 'period': '2024-11-08', 'ratio': 22.90165}, ....
<최종 입력 코드>
resultset = []
for item in mydict["results"]:
title = item["title"]
data = item["data"]
for i, v in enumerate(data):
new_data = {"title": title, "period": v["period"], "ratio": v["ratio"]}
data[i] = new_data
resultset.extend(data)
resultset
STEP 6 최종 데이터 세트를 데이터 프레임으로 변환
위의 과정을 걸쳐 2차원 데이터를 1차원으로 풀어서 한줄씩 넣어준 항목
즉 title(키워드 이름) period ratio 을 데이터 프레임으로 생성해준다
df = DataFrame(resultset)
df
