동서발전 태양광 발전량 예측 AI 경진대회

알고리즘 | 정형 | 회귀 | 에너지 | NMAE

  • moneyIcon 상금 : 1,600만원
  • 1,543명 마감

 

동네예보 API를 이용해 내일 예보 받아보기

2021.04.20 17:52 15,563 조회 language

14시 기준 내일 24시간 예보를 받고 선형 보간을 이용해 1시간단위 예보 데이터를 만들었습니다.

울산 지역 예보이며 당진 지역 예보는 좌표를 변경해야합니다.

코드
로그인이 필요합니다
0 / 1000
실명전사김동혁
2021.04.23 21:18

private 평가 때 매일매일 다음날 날씨예보를 받기위해선 이 코드가 정말 유용한 것 같습니다. 감사합니다!

SHOWMAKER
2021.05.03 21:36

error들이 많이 발생하는데 저만 그런가요? 

SHOWMAKER
2021.05.03 21:36

JSONDecodeError: Expecting value: line 1 column 1 (char 0)

DACON.Dobby
2021.05.04 13:32

안녕하세요.
날짜 변경을 하셨나요?
기상 예보 API는 최근 1일치 기상 예보만을 제공하기 때문에 최근 날로 코드를 변경해야 합니다.
만약 날짜를 변경하여도 같은 문제가 발생하면 댓글 부탁드립니다.
감사합니다.

SHOWMAKER
2021.05.05 11:56

삭제된 댓글입니다

SHOWMAKER
2021.05.05 11:56

해결했습니다. 감사합니다. 

SHOWMAKER
2021.05.05 13:06

for i, data in enumerate(response['response']['body']['items']['item']):
여기 부분에 이제 날짜를 제가 지정해서 변경하면 

KeyError: 'body'   라는 오류가 발생하는데 혹시 이에 대한 해결방법이 있나요? 

DACON.Dobby
2021.05.06 15:51

에러나는 코드 코드공유 게시판에 올려주실 수 있을까요?

SHOWMAKER
2021.05.07 10:26

삭제된 댓글입니다

SHOWMAKER
2021.05.06 23:45

감사합니다. 혹시 여기 colab 공유 해드렸는데 확인 가능하신가요?? 

DACON.Dobby
2021.05.07 10:27

SHOWMAKER님 코드 확인 후 답변 드리겠습니다.
링크 댓글은 private key가 노출되어 있는듯하여 우선 삭제하였습니다.

DACON.Dobby
2021.05.07 10:33

queryParams의 urllib.parse.quote_plus('base_date') 날짜를 수정하지 않은 듯합니다.
query의 base_date가 실제 데이터를 요청하는 날짜입니다.

SHOWMAKER
2021.05.07 12:53

부족한 부분 이렇게 신경 써주셔서 정말 감사합니다!

SHOWMAKER
2021.05.12 11:44

혹시 도비님. 저번에 말씀해주셔서 수정을 한 이후 별 문제 없이 진행이 되었다 오늘 다시 진행을 해보려 하니 다시 또 KeyError: 'body'   라는 오류가 발생하는데 혹시 이에 대한 해결방법이 있나요?  

DACON.Dobby
2021.05.12 17:43

에러가 발생한다면 urllib.parse.quote_plus('base_date'), urllib.parse.quote_plus('base_time') 두가지 지정된 값을 확인해보시기 바랍니다.
예보는 지난 24시간만 제공하여 예보 시점이 최근 24시간에서 벗어날 경우 error가 발생합니다.

JSON!
2021.05.06 16:18

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

저도 위에 분이랑 같은 에러가 나는데, 어떻게 해결하셨나요?

코드는 똑같고, 인증키만 변경했습니다. 

DACON.Dobby
2021.05.07 10:53

안녕하세요. JSON!님
윗 분과 같은 문제가 발생하신다면 query 날짜 수정을 했는지 확인 부탁드립니다.

JSON!
2021.05.12 09:29

잘 안되네요..제가 똥손인 듯합니다. 더 찾아보도록 하겠습니다.

DACON.Dobby
2021.05.12 17:44

코드를 코드 공유 게시판에 올려주시면 문제점 확인해드리겠습니다.
올리실때 ServiceKey는 가리고 올려주세요.

ㅇ초보입니다
2021.11.09 11:47

선생님 한번만 도와주실 수 있나요?

ㅇ초보입니다
2021.11.09 11:48

삭제된 댓글입니다

ㅇ초보입니다
2021.11.09 11:48

C:\Users\dlwpe\.conda\envs\pythonProject\python.exe C:/Users/dlwpe/PycharmProjects/pythonProject/main.py
Traceback (most recent call last):

ㅇ초보입니다
2021.11.09 11:48

  File "C:\Users\dlwpe\PycharmProjects\pythonProject\main.py", line 27, in <module>
    response = urllib.request.urlopen(url + queryParams).read()
  File "C:\Users\dlwpe\.conda\envs\pythonProject\lib\urllib\request.py", line 214, in urlopen
    return opener.open(url, data, timeout)
  File "C:\Users\dlwpe\.conda\envs\pythonProject\lib\urllib\request.py", line 523, in open
    response = meth(req, response)
  File "C:\Users\dlwpe\.conda\envs\pythonProject\lib\urllib\request.py", line 632, in http_response
    response = self.parent.error(
  File "C:\Users\dlwpe\.conda\envs\pythonProject\lib\urllib\request.py", line 561, in error
    return self._call_chain(*args)
  File "C:\Users\dlwpe\.conda\envs\pythonProject\lib\urllib\request.py", line 494, in _call_chain
    result = func(*args)
  File "C:\Users\dlwpe\.conda\envs\pythonProject\lib\urllib\request.py", line 641, in http_error_default

ㅇ초보입니다
2021.11.09 11:49

이렇게 뜨는데 어떻게 해야하나요?

DACON.HoneyBee
2021.11.09 12:01

안녕하세요.
맨 하단에 뜨는 에러 문구를 전달해주시겠어요??
SyntaxError: invalid syntax
이런식으로 ~~Error: ~~ 라고 뜨는 에러문구 알려주시면 문제 해결 도와드리겠습니다.

ㅇ초보입니다
2021.11.09 13:26

raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 500: Internal Server Error 
이렇게 뜹니다.
도와주셔서 감사합니다

DACON.HoneyBee
2021.11.09 15:02

500 Internal Server Error는 서버 측 오류입니다.
해당 API 사이트(https://data.go.kr/data/15057682/openapi.do) 에 접속이 안되는 것을 보니
API 자체가 변경, 혹은 삭제되었을 가능성이 있습니다.

ㅇ초보입니다
2021.11.09 16:34

Traceback (most recent call last):
  File "C:\Users\dlwpe\PycharmProjects\pythonProject6\main.py", line 12, in <module>
    ServiceKey = open('ServiceKey.txt', 'r').read()
FileNotFoundError: [Errno 2] No such file or directory: 'ServiceKey.txt'
도와주셔서 감사합니다. 라고 하는데 어디서 생성해야하나요? 혹시 메모장으로 만드는 건가요?

DACON.HoneyBee
2021.11.10 12:01

서비스키는 API 제공측에 발급 신청하여 얻을 수 있습니다. (유저 별로 고유 서비스키를 주기때문에 공개되지 않도록 유의해야합니다.)

ㅇ초보입니다
2021.11.09 18:20

나중에 오시면 https://dacon.io/forum/405176?page=1&dtype=recent (자유게시판)에서 왜안 돼는지 알려주시면 감사하겠습니다.ㅜㅜ

도비콘
2021.11.10 12:03

네 확인했습니다.

hongton
2022.04.20 19:54

2022년 4월 20일 기준 database가 변경되었네요.
https://www.data.go.kr에서 "단기예측"으로 검색해서 사용신청 후에

ServiceKey =  xxxxxx                 # Decoding 버전 사용해야 됨
urllib.parse.quote_plus('serviceKey') : ServiceKey, # key를 바로 입력해도 됩니다.  #  serviceKey 's' 소문자로 바뀜
url = 'http://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getVilageFcst'  # url로 바뀜