728x90

AttributeError: module 'urllib' has no attribute 'parse'

 

혹은

 

AttributeError: module 'urllib' has no attribute 'request'

 

위와 같은 에러가 발생했을 때에는 import 문을 아래와 같이 바꿔주면 된다.

 

import urllib
import urllib.parse # 추가된 부분
import urllib.request # 추가된 부분
import json

def mt(sentence, client_id, client_secret):
    koText = urllib.parse.quote(sentence)
    data = "source=ko&target=en&text=" + koText
    url = "https://openapi.naver.com/v1/papago/mt"
    request = urllib.request.Request(url)
    request.add_header("X-Naver-Client-Id",client_id)
    request.add_header("X-Naver-Client-Secret",client_secret)
    response = urllib.request.urlopen(request, data=data.encode("utf-8"))
    rescode = response.getcode()
    if(rescode==200):
        response_body = response.read()
        json_result = json.loads(response_body.decode('utf-8'))
        enText = json_result["message"]["result"]["translatedText"]
        return enText
    else:
        print("Error Code:" + rescode)

papago api를 사용 시 제시되는 예시 코드이다.

위 코드를 실행했을 때 AttributeError가 발생했고, 직접 urllib.parse, urllib.request 를 추가했더니 에러가 해결되었다.

 

728x90