불러온 데이터 엑셀로 저장
조회수 733회
안녕하세요, Open API 공부를 하다가 코드를 짜게 되었고 이것을 엑셀로 저장하려고하는데 보통 to_excel 함수를 사용하여 저장하는것으로 알고있는데요, 불러온 데이터는 따로 데이터 프레임을 만들어서 저장을 해야대는지 코딩이 잘 안되어 질문드립니다.!
해당 코드는 다음과 같습니다.
import requests import datetime import pandas as pd
url = "http://www.khoa.go.kr/oceangrid/grid/api/tideObsPreTab/search.do"
headers = { 'cache-control': "no-cache", 'postman-token': "51b374f3-ba0d-0077-1f3c-ff95b65a81ba" }
dt_index = pd.date_range(start='20200922', end='20200923') dt_list = dt_index.strftime("%Y%m%d").tolist()
for i in dt_list: date=i querystring = {"ServiceKey":"OHVMK3dF0Ah6K/oIG71f0g==","ObsCode":"DT_0001","Date":date,"ResultType":"json"} response = requests.request("GET", url, headers=headers, params=querystring) print(response.text)
response.to_excel('testt.xlsx', index=False)
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
response.to_excel
이렇게 저장하고 있는데요.response
는requests.Response
객체이고, 이 클래스에는to_excel
이라는 메소드가 없어요. 보통은response
를pandas.DataFrame
으로 잘 바꾸어서 그 객체에서to_excel
을 실행해서 저장해요.그래서 코드를 고쳐보면 대략 다음과 같아요.
import requests import datetime import pandas as pd url = "http://www.khoa.go.kr/oceangrid/grid/api/tideObsPreTab/search.do" headers = {"cache-control": "no-cache", "postman-token": "51b374f3-ba0d-0077-1f3c-ff95b65a81ba"} dt_index = pd.date_range(start="20200922", end="20200923") dt_list = dt_index.strftime("%Y%m%d").tolist() data = [] for i in dt_list: date = i querystring = { "ServiceKey": "#######################", "ObsCode": "DT_0001", "Date": date, "ResultType": "json", } response = requests.request("GET", url, headers=headers, params=querystring) print(response.text) data.extend(response.json()["result"]["data"]) df = pd.DataFrame(data) print(df) df.to_excel("testt.xlsx", index=False)
댓글 입력