TroubleShooting

AttributeError: 'str' object has not attribute에 대한 해결방법

JackSmith 2023. 1. 26.

해당 포스팅은 아래 링크의 예제를 직접 클론코딩 해보는 과정에서 발생한 오류를 해결하는 과정을 담은 글입니다.

https://wikidocs.net/129741

 

090 웹 페이지를 저장하려면? ― urllib

urllib은 URL을 읽고 분석할 때 사용하는 모듈이다. ## 문제 브라우저로 위키독스의 특정 페이지를 읽으려면 다음과 같이 요청하면 된다. ```no-highlight …

wikidocs.net

 

위 글에서 나온 함수를 정의하고 이를 맨 아랫줄에서 호출하였더니 정상작동하였습니다.

import urllib.request


def get_wikidocs(page):
    print("wikidocs page:{}".format(page))  # 페이지 호출시 출력
    resource = 'https://wikidocs.net/{}'.format(page)
    try:
        with urllib.request.urlopen(resource) as s:
            with open('wikidocs_%s.html' % page, 'wb') as f:
                f.write(s.read())
                print('success')
    except urllib.error.HTTPError:
        print('fail')


get_wikidocs(7)

 

그런데,, 저는 c언어를 주로 해왔던지라,  아래 그림의 부분이 살~짝? 낯설었는데요!

그래서 아래처럼 바꾸고,

다시 실행을 돌려보았더니,,

음ㅋㅋㅋㅋ 바로 뻗어버리네요ㅋㅎㅎ

여기서 중요한 부분은,

AttributeError: 'str' object has not attribute 'page' 인거 같습니다.

이걸 통해서 우리는 파이썬에서 대체 저 format()을 왜 써야하는지, 한번 짚고 넘어가야 할 것 같습니다.

format()에 대한 내용은 Grammer탭에서 정리하도록 하겠습니다!

 

댓글