Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KeyError: 'result' #39

Open
susie-kim opened this issue Sep 24, 2023 · 6 comments
Open

KeyError: 'result' #39

susie-kim opened this issue Sep 24, 2023 · 6 comments

Comments

@susie-kim
Copy link

얼마만에 다시 이용해 보니 아래와 같은 오류가 발생합니다.

Traceback (most recent call last):
File "", line 1, in
File "/Users/username/opt/miniconda3/lib/python3.9/site-packages/hanspell/spell_checker.py", line 62, in check
html = data['message']['result']['html']
KeyError: 'result'

혹시 뭐가 문제인지 알 수 있을까요?

@chanung-ki
Copy link

동일한 오류를 겪고있습니다. 해결 희망합니다.

@4923
Copy link

4923 commented Sep 29, 2023

spell_checker.py 의 data = json.loads(r) 문제로 보입니다.
확인해보면 통신결과인 r에서 200이 뜨고 r.text는 아래와 같이 나옵니다.

window.__jindo2_callback._spellingCheck_0({"message":{"error":"유효한 키가 아닙니다."}});

이후 json.loads 부터 막혀서 result 라는 key를 불러올 수 없는 것 같은데
#38 에서 곧 fix 올려주신다고 하니 기다려보면 될 것 같습니다

@LearningnRunning
Copy link

hanspell은 네이버맞춤법 검사기에서 curl로 값들을 가져오는 방식입니다. 네이버에서 get 과정의 추가 키를 요구하는 것으로 수정하였습니다.

아래와 같이 수정해주시면 됩니다.

저 해결했습니다! 2가지 수정하였습니다.

spell_checker.py
payload에서 passportKey와 _callback를 추가해야했습니다.
payload = { 'passportKey': 'curl값 copy로 알 수 있습니다.', '_callback': 'curl값 copy로 알 수 있습니다.', 'q': text, 'color_blindness': '0' }

그리고 61번째 줄 수정

data = json.loads(r.text)
->

# Parse the JSON data into a Python dictionary
data = json.loads(json_data)```

@miiiiiion0
Copy link

hanspell은 네이버맞춤법 검사기에서 curl로 값들을 가져오는 방식입니다. 네이버에서 get 과정의 추가 키를 요구하는 것으로 수정하였습니다.

아래와 같이 수정해주시면 됩니다.

저 해결했습니다! 2가지 수정하였습니다.

spell_checker.py payload에서 passportKey와 _callback를 추가해야했습니다. payload = { 'passportKey': 'curl값 copy로 알 수 있습니다.', '_callback': 'curl값 copy로 알 수 있습니다.', 'q': text, 'color_blindness': '0' }

그리고 61번째 줄 수정

data = json.loads(r.text) ->

# Parse the JSON data into a Python dictionary
data = json.loads(json_data)```

말씀주신 부분처럼 수정해보니 json_data is not defined 라는 오류가 뜨는데, 혹시 그러지 않으셨는지요?

@sig6774
Copy link

sig6774 commented Nov 6, 2023

해결하신 방식으로 수정하여 진행했을 때 json_data는 정의되어 있지 않다라고 합니다.
json_data 변수는 어디서 사용되었는지 알 수 있을까요?
요청을 받아오는게 r 이라는 변수 같아 r.text로 진행해도 받아오지 못하고 있습니다 ㅠㅠ
요청은 response 200으로 받아오지만 그 안에 데이터는 없는 것 같습니다...

@Dev2lgb
Copy link

Dev2lgb commented Apr 26, 2024

import re
import requests

url = "https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=0&ie=utf8&query=%EB%A7%9E%EC%B6%A4%EB%B2%95%EA%B2%80%EC%82%AC%EA%B8%B0"

response = requests.get(url)

if response.status_code == 200:
    html = response.text
    match = re.search(r'passportKey=([a-zA-Z0-9-_]+)', html)
    if match:
        passport_key = match.group(1)
        print("passportKey:",passport_key)
    else:
        print("passportKey not found")
else:
    print("Error:", response.status_code)

키는 이렇게 받으시고

import re
json_match = re.search(r'\{.*\}', r.text)
    json_data = json_match.group(0)

json_data 는 위와 같이 구합니다

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants