불러온 데이터 엑셀로 저장

조회수 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 이렇게 저장하고 있는데요.

    responserequests.Response 객체이고, 이 클래스에는 to_excel 이라는 메소드가 없어요. 보통은 responsepandas.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)
    
    • 제가 코딩 초보라 남 코딩 쓰는건 잘하는데 코딩짜는건 어렵네요 감사합니다 ㅠㅠ!! 알 수 없는 사용자 2020.9.24 10:00

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)