파이썬 오픈 API 날씨 데이터 FOR문 + 배열로 엑셀 출력하기

조회수 1417회

안녕하세요. 데이터 추출하는것을 공부하는 와중에 배열을 사용하여 for문으로 데이터를 뽑고싶은데 엑셀로 출력할때 관측소를 구분되게 출력되는 함수 append를 사용하려 했으나 구글링해도 잘안되어 이렇게 질문드립니다. 해당 코드는 이렇습니다.

import requests

import pandas as pd

import datetime

import json

import sys

def convert_strtdat(data): #예외 처리

try:
    if data[-2:] == '24':
        d = datetime.datetime.strptime(data[:-2], '%Y%m%d')
        d = d + datetime.timedelta(days=1)
    else:
        d = datetime.datetime.strptime(data, '%Y%m%d%H')
    return d
except Exception as e:
    print(f"[!] {data} is Not Date type.")
    sys.exit(1)

url = "http://www.wamis.go.kr:8080/wamis/openapi/wkw/wl_hrdata"

headers = { 'content-type': "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW", 'cache-control': "no-cache", 'postman-token': "ba56118f-af74-fc0b-708d-00ec09c20ed5" }

obscd_list = ["1001602", "1001603"] #관측소 코드

result_list = []

for obscd in obscd_list:

querystring = {"servicekey":"f3e1f3409bed2e5d314e804e6380f3464ad7531ae4","obscd":"obscd","startdt":"20201001","enddt":"20201002"}#요청변수 obscd: 관측소코드, startdt: 관측날짜, enddt:관측종료날짜

payload = "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"files\"\r\n\r\ndump.sql\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--"

print(response.text)

response = requests.request("GET", url, data=payload, headers=headers, params=querystring)

dat = json.loads(response.text)

df = pd.DataFrame.from_dict(dat['list'])

df.info()

df["ymdh"] = df['ymdh'].apply(convert_strtdat)

df["wl"] = df["wl"].astype(float)

df4hours = df.set_index("ymdh").resample("4H").mean() #4시간 단위로 출력

df4hours.to_excel('tes123.xlsx') #엑셀로 추출

출처 : http://www.wamis.go.kr:8080/wamisweb/wl/w8.do#

배열에 관측소 코드를 묶어, FOR문을 사용하여 엑셀로 추출하는 과정에서 기존에는 시간과 수온만 출력이 되는데, 저는 엑셀로 뽑을때 관측소 코드가 구분되어 엑셀로 출력을 하고싶은데 어떻게 해야할지 모르겠습니다.

도움 요청드립니다..

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 질문 여러번 올리셨는데, 마크다운 문법으로 코드부분 잘 좀 올려주시면 안 되요? nowp 2020.10.27 11:00
  • 죄송합니다. 이게 주석처리하면 크게보이는 효과가 나타나던데 여기 올릴때만 이러네요.. 알 수 없는 사용자 2020.10.27 17:06
  • @gustj258 : 작성 팁 마크다운 문법 을 클릭해서 한번 잘 읽어보세요. nowp 2020.10.28 08:20
  • 보여질때는 가독성이 가관으로 나와있네요.. 줄띄워서 코드 다시작성하였습니다. 알 수 없는 사용자 2020.10.28 09:19
  • @gustj258 : https://hashcode.co.kr/questions/1772/%EB%A7%88%ED%81%AC%EB%8B%A4%EC%9A%B4-%EB%AC%B8%EB%B2%95-%EC%9E%91%EC%84%B1-%ED%8C%81 이걸 좀 읽으시오. 그리고, 어떤 게 안 된다는 말인지 질문을 좀 구체적으로 해줘요. nowp 2020.10.28 10:10
  • 죄송합니다. 마크다운법 글 봐도 '''이문구를 어떻게 사용해야할지 모르겠어요.. 알 수 없는 사용자 2020.10.28 11:12
  • @gustj258 : 홑따옴표가 아니라, 보통 숫자 1 키 옆에 있는 백틱입니다. 물결표랑 같이 있는 문자요. 이걸 3개 연달아 써야 하고, 그게 어렵다면, 여기편집기 아이콘 중에서 <> 로 보이는 걸 눌러보면 나옵니다. nowp 2020.10.28 11:55
  • 코드 한줄마다 ``` 넣어보았습니다.. 알 수 없는 사용자 2020.10.28 13:06

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

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

(ಠ_ಠ)
(ಠ‿ಠ)