에러tlqkf!!!!!

나도 좀 써보자 py-hanspell. 고난의 연속. KeyError:'result'의 저주

소곡이 2023. 12. 14. 21:46
728x90

 

안녕하세요


  일단 설치부터 합시다

git clone https://github.com/ssut/py-hanspell
cd py-hanspell
python setup.py install

 

 

  만약 깔았는데 no-module이라 뜬다? 그럼 커널 재연결하시면 됩니다. 그럼 이런 에러가 뜹니다.

 


해결방법?

 

https://github.com/ssut/py-hanspell/issues/41

 

py-hanspell spell_checker.check 사용 시 KeyError: 'result' · Issue #41 · ssut/py-hanspell

안녕하세요. chec = spell_checker.check() 사용 시 KeyError: 'result'가 반환됩니다. hanspell\spell_checker.py 내 line 62 에서 html = data['message']['result']['html'] 부분 중 ['result'] 부분에서 keyerror가 발생한 것 같습니다.

github.com

 

 

  일단 위 해결법대로, spell_checker.py에 들어갑니다. 

 

 

 수정 사항은 2가지 입니다. 

 

 1. payload에 추가 

'passportKey': '880af1461495c9169ca22466896beac17fd71d7a',
'_callback': 'jQuery1124024353107794965956_1697593724680'

 

2. data 코드 수정

#data = json.loads(r.text)  # 원래 코드 
import re

json_data = re.search(r'((.*))', r.text).group(1)
data = json.loads(json_data)

 

 

 이렇게 수정하면, 안 돌아갑니다. 코드도 수정 안 된 걸 알 수 있쬬.

passportKey, _callback이 달라서 그럼

 


해결법

  사실 똑똑하신 분들은 저것만 봐도 아시겠죠..ㅎㅎㅋㅋㅋㅋ

 

 저는 몰라서 개고생 뒤지게 하고 얻었습니다. 

 

 일단 colab에 들어갑니다. 

 

1. 먼저 네이년 맞춤법 검사기에 들어감

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

 

맞춤법검사기 : 네이버 통합검색

'맞춤법검사기'의 네이버 통합검색 결과입니다.

search.naver.com

 

2. f12 누르기

 network를 틀어놓으면 됩니다. 

 

3. 아무거나 맞춤법 검사하기

 아무거나 검사하기 누르면 network쪽에 SpellerProxy 뭐시기라고 뜰거에요. 그거 누를게요. 

 

 

4. passportKey, _callback 값 가져오기

 

5. spell_checker.py 코드 수정

payload = {
        'passportKey' : '74fcee3d1c1c4d935144a790f5998f3aa040d0ed',
        '_callback': 'jQuery112406428945730130833_1702554020260',
        'q': text,
        'color_blindness': 0
    }
import re

#data = json.loads(r.text) # 기존 코드 주석처리

json_data = re.search(r'\((.*)\)', r.text).group(1)
# Parse the JSON data into a Python dictionary
data = json.loads(json_data)

 

 속시원

 

 


본 레퍼. 다 필요없고 /41만 보시면 됩니다. 

https://github.com/ssut/py-hanspell/pull/44

 

change_spell_checker by sig6774 · Pull Request #44 · ssut/py-hanspell

agent auth에서 문제가 있어서 TOKEN값을 가지고 오지 못했습니다. 해당 부분 agent 수정 진행했고 실제 동작 확인했습니다~

github.com

 

https://github.com/ssut/py-hanspell/pull/42

 

새로 추가된 passportKey 파라미터에 대한 코드 수정 by belowyoon · Pull Request #42 · ssut/py-hanspell

추가된 passportKey라는 파라미터에 대해서 코드 수정했습니다. 처음 1회 때 1시간 동안 유효한 캐시에 네이버 맞춤법 검사 페이지로 부터 passportKey 값을 파싱하여 가져와 저장하고 쓰는 방식입니다

github.com

 

https://github.com/ssut/py-hanspell/issues/41

 

py-hanspell spell_checker.check 사용 시 KeyError: 'result' · Issue #41 · ssut/py-hanspell

안녕하세요. chec = spell_checker.check() 사용 시 KeyError: 'result'가 반환됩니다. hanspell\spell_checker.py 내 line 62 에서 html = data['message']['result']['html'] 부분 중 ['result'] 부분에서 keyerror가 발생한 것 같습니다.

github.com


 

  이거 해결하겠답시고. 어렵게 밤낮 바꾸고 난 다음날에 또 밤샜어요..ㅋ 결국 아침 6시에 퇴근하는데 배가 너무 고픈거에요.. 코드는 안 돌아가는데. 배는 고프고.. 스스로가 너무 한심하고 부끄러웟어요..ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

 

 

 해결하고 나니까 웹 공부를 안 해서 생긴 일 같네요..ㅋㅋㅋ payload 보는 법만 알았따면 더 일찍 끝났을 텐데.

 

 근데 일단 해결해서 기분 개좋음


 

끗!