파이썬 오픈 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문을 사용하여 엑셀로 추출하는 과정에서 기존에는 시간과 수온만 출력이 되는데, 저는 엑셀로 뽑을때 관측소 코드가 구분되어 엑셀로 출력을 하고싶은데 어떻게 해야할지 모르겠습니다.
도움 요청드립니다..
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력