저도 이거 보고 연습해봤는데 위에 분들이랑 똑같은 에러가 나네요... 서비스키에 넣는 일반인증키(decoding) 문제인것 같습니다. 돈뽀기님이 다른분 답글에 올리신 코드 그대로 복붙하여 실행하니 에러가 안나는데, 제 인증키로 바꾸면 에러가 나네요... 혹시 공공데이터포털 홈페이지에서 그대로 복붙하면 잘 안되는건가 해서 메모장에 복붙한다음 다시 VS코드에 복붙 했는데도 동일합니다.... 왜이럴까요...ㅠㅠ
영상 잘 봤습니다. 다음과 같은 에러가 뜨는데, 어떻게 해결해야할지 모르겠어요. -- C:\Programming>C:/Users/g/AppData/Local/Programs/Python/Python310/python.exe c:/Programming/rainalarm_sendme_base.py C:\Programming Traceback (most recent call last): File "c:\Programming ainalarm_sendme_base.py", line 42, in data = json.loads(response_body) # json file Load하기 File "C:\Users\g\AppData\Local\Programs\Python\Python310\lib\json\__init__.py", line 346, in loads return _default_decoder.decode(s) File "C:\Users\g\AppData\Local\Programs\Python\Python310\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "C:\Users\g\AppData\Local\Programs\Python\Python310\lib\json\decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
안녕하세요! 기상청 api 불러오는 과정에서 오류가 발생한 것 같은데 일단 인증키 decoding 제대로 들어갔는지 다시 복붙해봐주시고 1. 일반인증키 decoding을 “e88Djdkcieka=djskdn” 이런식으로 큰따옴표 안에 적어주셔야 해요 제가 인증키를 가리려다보니까 에매하게 보여드린 것 같아서 왠지 이것때문인 것 같습니다 ㅠ 2. 혹시 그래도 안되시면, quote_plus(“base_date”) : today 이부분에서 today를 어제날짜 “20221110” 으로 바꾸고 다시 돌려봐 주세요 그래도 안되시면 댓글 한번더 부탁드립니다 !
코드 중간 실행시 이런 에러가 발생합니다. c:\Programming Output exceeds the size limit. Open the full output data in a text editor --------------------------------------------------------------------------- JSONDecodeError Traceback (most recent call last) c:\Programming ainalarm_sendme_base.py in line 41 40 req = urllib.request.Request(url + unquote(params)) 41 response_body = urlopen(req).read() # URL 읽기 ---> 42 data = json.loads(response_body) #json file Load하기 44 # 2. Data 가공 & 추출 45 df = pd.DataFrame(data['response']['body']['items']['item']) # data에서 필요한 항목 가져오기 File c:\Users\sukwang2\AppData\Local\Programs\Python\Python310\lib\json\__init__.py:346, in loads(s, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw) 341 s = s.decode(detect_encoding(s), 'surrogatepass') 343 if (cls is None and object_hook is None and 344 parse_int is None and parse_float is None and 345 parse_constant is None and object_pairs_hook is None and not kw): --> 346 return _default_decoder.decode(s) 347 if cls is None: 348 cls = JSONDecoder File c:\Users\sukwang2\AppData\Local\Programs\Python\Python310\lib\json\decoder.py:337, in JSONDecoder.decode(self, s, _w) 332 def decode(self, s, _w=WHITESPACE.match): 333 """Return the Python representation of ``s`` (a ``str`` instance 334 containing a JSON document). 335 336 """ --> 337 obj, end = self.raw_decode(s, idx=_w(s, 0).end()) ... 354 except StopIteration as err: --> 355 raise JSONDecodeError("Expecting value", s, err.value) from None 356 return obj, end JSONDecodeError: Expecting value: line 1 column 1 (char 0)
안녕하세요! 기상청 api 불러오는 과정에서 오류가 발생한 것 같은데 일단 인증키 decoding 제대로 들어갔는지 다시 복붙해봐주시고 1. 일반인증키 decoding을 “e88Djdkcieka=djskdn” 이런식으로 큰따옴표 안에 적어주셔야 해요 제가 인증키를 가리려다보니까 에매하게 보여드린 것 같아서 왠지 이것때문인 것 같습니다 ㅠ 그리고, quote_plus(“base_date”) : today 이부분에서 today를 어제날짜 “20221126” 으로 바꾸고 다시 돌려봐 주세요 그래도 안되시면 댓글 한번더 부탁드립니다 !
@@donbboki안녕하세요 decoding 키 정확히 입력했어요.today을 "20221126"으로 수정해도 동일한 에러발생하네요. JSONDecodeError 인것같은데요. 첫번재는 정상실행되고요. 두번째 #%% 코드 실행시 에러발생합니다.serviceKey 에 "****4JY1w==" 따옴표 안에 정확히 넣어주었는데요. 어렵네요~~ Output exceeds the size limit. Open the full output data in a text editor --------------------------------------------------------------------------- JSONDecodeError Traceback (most recent call last) c:\Programming ainalarm_sendme_base.py in line 41 40 req = urllib.request.Request(url + unquote(params)) 41 response_body = urlopen(req).read() # URL 읽기 ---> 42 data = json.loads(response_body) #json file Load하기 44 # 2. Data 가공 & 추출 45 df = pd.DataFrame(data['response']['body']['items']['item']) # data에서 필요한 항목 가져오기 File c:\Users\sukwang2\AppData\Local\Programs\Python\Python310\lib\json\__init__.py:346, in loads(s, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw) 341 s = s.decode(detect_encoding(s), 'surrogatepass') 343 if (cls is None and object_hook is None and 344 parse_int is None and parse_float is None and 345 parse_constant is None and object_pairs_hook is None and not kw): --> 346 return _default_decoder.decode(s) 347 if cls is None: 348 cls = JSONDecoder File c:\Users\sukwang2\AppData\Local\Programs\Python\Python310\lib\json\decoder.py:337, in JSONDecoder.decode(self, s, _w) 332 def decode(self, s, _w=WHITESPACE.match): 333 """Return the Python representation of ``s`` (a ``str`` instance 334 containing a JSON document). 335 336 """ --> 337 obj, end = self.raw_decode(s, idx=_w(s, 0).end()) ... 354 except StopIteration as err: --> 355 raise JSONDecodeError("Expecting value", s, err.value) from None 356 return obj, end JSONDecodeError: Expecting value: line 1 column 1 (char 0)
간결하고 깔금하고 실용적인 영상 잘 봤습니다. 카톡으로 다른 사람에게 보내는 내용도 기대되네요. ^^
감사합니다 ^^*
이게빠이썬이네요
최고
떡상TV님 감사합니다 !!ㅎ
그리고 저는 # %% 요거 구간 나눠서 실행하는게 아예 되지를 않는데...추가로 뭐 설치해 줘야 할 것이 있을까요?
저도 이거 보고 연습해봤는데 위에 분들이랑 똑같은 에러가 나네요... 서비스키에 넣는 일반인증키(decoding) 문제인것 같습니다. 돈뽀기님이 다른분 답글에 올리신 코드 그대로 복붙하여 실행하니 에러가 안나는데, 제 인증키로 바꾸면 에러가 나네요... 혹시 공공데이터포털 홈페이지에서 그대로 복붙하면 잘 안되는건가 해서 메모장에 복붙한다음 다시 VS코드에 복붙 했는데도 동일합니다.... 왜이럴까요...ㅠㅠ
영상 잘 봤습니다.
다음과 같은 에러가 뜨는데, 어떻게 해결해야할지 모르겠어요.
--
C:\Programming>C:/Users/g/AppData/Local/Programs/Python/Python310/python.exe c:/Programming/rainalarm_sendme_base.py
C:\Programming
Traceback (most recent call last):
File "c:\Programming
ainalarm_sendme_base.py", line 42, in
data = json.loads(response_body) # json file Load하기
File "C:\Users\g\AppData\Local\Programs\Python\Python310\lib\json\__init__.py", line 346, in loads
return _default_decoder.decode(s)
File "C:\Users\g\AppData\Local\Programs\Python\Python310\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Users\g\AppData\Local\Programs\Python\Python310\lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
안녕하세요!
기상청 api 불러오는 과정에서 오류가 발생한 것 같은데
일단 인증키 decoding 제대로 들어갔는지 다시 복붙해봐주시고
1. 일반인증키 decoding을
“e88Djdkcieka=djskdn” 이런식으로 큰따옴표 안에 적어주셔야 해요
제가 인증키를 가리려다보니까 에매하게 보여드린 것 같아서 왠지 이것때문인 것 같습니다 ㅠ
2. 혹시 그래도 안되시면,
quote_plus(“base_date”) : today
이부분에서 today를 어제날짜 “20221110”
으로 바꾸고 다시 돌려봐 주세요
그래도 안되시면 댓글 한번더 부탁드립니다 !
코드 중간 실행시 이런 에러가 발생합니다.
c:\Programming
Output exceeds the size limit. Open the full output data in a text editor
---------------------------------------------------------------------------
JSONDecodeError Traceback (most recent call last)
c:\Programming
ainalarm_sendme_base.py in line 41
40 req = urllib.request.Request(url + unquote(params))
41 response_body = urlopen(req).read() # URL 읽기
---> 42 data = json.loads(response_body) #json file Load하기
44 # 2. Data 가공 & 추출
45 df = pd.DataFrame(data['response']['body']['items']['item']) # data에서 필요한 항목 가져오기
File c:\Users\sukwang2\AppData\Local\Programs\Python\Python310\lib\json\__init__.py:346, in loads(s, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
341 s = s.decode(detect_encoding(s), 'surrogatepass')
343 if (cls is None and object_hook is None and
344 parse_int is None and parse_float is None and
345 parse_constant is None and object_pairs_hook is None and not kw):
--> 346 return _default_decoder.decode(s)
347 if cls is None:
348 cls = JSONDecoder
File c:\Users\sukwang2\AppData\Local\Programs\Python\Python310\lib\json\decoder.py:337, in JSONDecoder.decode(self, s, _w)
332 def decode(self, s, _w=WHITESPACE.match):
333 """Return the Python representation of ``s`` (a ``str`` instance
334 containing a JSON document).
335
336 """
--> 337 obj, end = self.raw_decode(s, idx=_w(s, 0).end())
...
354 except StopIteration as err:
--> 355 raise JSONDecodeError("Expecting value", s, err.value) from None
356 return obj, end
JSONDecodeError: Expecting value: line 1 column 1 (char 0)
안녕하세요!
기상청 api 불러오는 과정에서 오류가 발생한 것 같은데
일단 인증키 decoding 제대로 들어갔는지 다시 복붙해봐주시고
1. 일반인증키 decoding을
“e88Djdkcieka=djskdn” 이런식으로 큰따옴표 안에 적어주셔야 해요
제가 인증키를 가리려다보니까 에매하게 보여드린 것 같아서 왠지 이것때문인 것 같습니다 ㅠ
그리고,
quote_plus(“base_date”) : today
이부분에서 today를 어제날짜 “20221126”
으로 바꾸고 다시 돌려봐 주세요
그래도 안되시면 댓글 한번더 부탁드립니다 !
@@donbboki안녕하세요 decoding 키 정확히 입력했어요.today을 "20221126"으로 수정해도 동일한 에러발생하네요. JSONDecodeError
인것같은데요. 첫번재는 정상실행되고요. 두번째 #%% 코드 실행시 에러발생합니다.serviceKey 에 "****4JY1w==" 따옴표 안에 정확히 넣어주었는데요.
어렵네요~~
Output exceeds the size limit. Open the full output data in a text editor
---------------------------------------------------------------------------
JSONDecodeError Traceback (most recent call last)
c:\Programming
ainalarm_sendme_base.py in line 41
40 req = urllib.request.Request(url + unquote(params))
41 response_body = urlopen(req).read() # URL 읽기
---> 42 data = json.loads(response_body) #json file Load하기
44 # 2. Data 가공 & 추출
45 df = pd.DataFrame(data['response']['body']['items']['item']) # data에서 필요한 항목 가져오기
File c:\Users\sukwang2\AppData\Local\Programs\Python\Python310\lib\json\__init__.py:346, in loads(s, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
341 s = s.decode(detect_encoding(s), 'surrogatepass')
343 if (cls is None and object_hook is None and
344 parse_int is None and parse_float is None and
345 parse_constant is None and object_pairs_hook is None and not kw):
--> 346 return _default_decoder.decode(s)
347 if cls is None:
348 cls = JSONDecoder
File c:\Users\sukwang2\AppData\Local\Programs\Python\Python310\lib\json\decoder.py:337, in JSONDecoder.decode(self, s, _w)
332 def decode(self, s, _w=WHITESPACE.match):
333 """Return the Python representation of ``s`` (a ``str`` instance
334 containing a JSON document).
335
336 """
--> 337 obj, end = self.raw_decode(s, idx=_w(s, 0).end())
...
354 except StopIteration as err:
--> 355 raise JSONDecodeError("Expecting value", s, err.value) from None
356 return obj, end
JSONDecodeError: Expecting value: line 1 column 1 (char 0)
@어수광 동일하네요..이거 그대로 붙여서 돌려봐주시겠어요 ?
# %%
import requests
from urllib.request import urlopen
from urllib.parse import urlencode, unquote, quote_plus
import urllib
import requests
import json
import pandas as pd
import datetime
import os
print(os.getcwd())
os.chdir('C://Programming')
# 1. 기상청 Data 불러오기
# 기상청_동네 예보 조회 서비스 api 데이터 url 주소, 단기이기때문에 getVilageFcst 사용
url = 'apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getVilageFcst'
serviceKey = "eB8zmyr4PrbTUIRDG58hGIbAhFhYD2ABkzrjtygKrwvoy0TuZyYQhNylkmvSxLbs8uEY1JoXNsGFisgsbvPOIw==" # 공공데이터 포털에서 생성된 본인의 서비스 키를 복사 / 붙여넣기
pageNo = 1
numOfRows = 500
dataType = 'json'
nx = 63
ny = 128
today = datetime.datetime.today().strftime("%Y%m%d")
params = '?' + urlencode({
quote_plus("serviceKey"): serviceKey, # 인증키
quote_plus("numOfRows"): numOfRows, # 한 페이지 결과 수 // default : 10
quote_plus("pageNo"): pageNo, # 페이지 번호 // default : 1
quote_plus("dataType"): dataType, # 응답자료형식 : XML, JSON
quote_plus("base_date"): today, # 발표일자 // yyyymmdd
quote_plus("base_time"): "0500", # 발표시각 // HHMM, 매 시각 40분 이후 호출
quote_plus("nx"): nx, # 예보지점 X 좌표
quote_plus("ny"): ny # 예보지점 Y 좌표
})
# URL parsing
req = urllib.request.Request(url + unquote(params))
response_body = urlopen(req).read() # URL 읽기
data = json.loads(response_body) #json file Load하기
@@donbboki 이런 에러가 발생하네요
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
c:\Programming
ainalarm_sendme_base.py in line 42
40 data = json.loads(response_body) #json file Load하기
41 # 2. Data 가공 & 추출
---> 42 df = pd.DataFrame(data['response']['body']['items']['item']) # data에서 필요한 항목 가져오기
KeyError: 'body'