2017-01-21 7 views
-2

파이썬에서 textwrap 모듈을 사용하여 일부 텍스트의 서식을 지정하려고합니다. 어떤 이유로 int 형의 객체가 len()을 가지고 있지 않다는 것과 왜 그럴 수 없는지를 말하고 있습니다. 그것은 내가 잘못 사용하고 있거나 잘못된 순서로하고있는 것이어야합니다. 미리 감사드립니다.TextWrapper 모듈 오류

여기 내 이미지가 아니라 이미지입니다.

수입 JSON 가져 오기 요청 수입 textwrap

당신이 OMDB (오픈 영화 데이터베이스)를 사용하여 동영상

에 대한 정보를 잡아하는 데 사용할 수있는 모듈입니다.

클래스의 MovieFinder() :

def LookupMovie(self, movieName): 
    if not movieName: 
     return 

    #Grab the formatted query string 
    query = self.GetFormattedSearchQuery(movieName) 
    #Make the request 
    r = requests.get(query) 
    #Grab the json data 
    jsonInfo = r.json() 
    #Pull out all of the relevant information 
    searchResults = jsonInfo['Search'] 

    for movie in searchResults: 
     movieQuery = self.GetFormattedTitleQuery(movie['Title']) 
     response = requests.get(movieQuery) 
     jsonInfo = response.json() 

     movieResult = Result(jsonInfo['Title'], jsonInfo['Year'], 
          jsonInfo['Rated'], jsonInfo['Plot'], 
          jsonInfo['Released'], jsonInfo['Runtime']) 
     self._results.append(movieResult) 


def GetFormattedSearchQuery(self, movieName): 
    movie = 's=' + movieName 

    formattedQuery = self.queryString + movie 
    return formattedQuery 

def GetFormattedTitleQuery(self, movieName): 
    movie = 't=' + movieName.replace(" ", "+") 
    year = '&y=' 
    plot = '&plot=short' 
    responseType = '&r=json' 

    formattedQuery = self.queryString + movie + year + plot + responseType 
    return formattedQuery 

def GetResults(self): 
    return self._results  

def __init__(self): 
    self.queryString = 'http://www.omdbapi.com/?' 
    self._results = [] 

수준의 결과() :

def getTitle(self): 
    return self._title 

def getYear(self): 
    return self._year 

def getRating(self): 
    return self._rating 

def getPlot(self): 
    return self._plot 

def getReleaseDate(self): 
    return self._releaseDate 

def getRuntime(self): 
    return self._runtime 

def printInfo(self): 
    print ('Title  : ' + self.getTitle()) 
    print ('Year   : ' + self.getYear()) 
    print ('Release Date : ' + self.getReleaseDate()) 
    print ('Runtime  : ' + self.getRuntime()) 
    print ('Rating  : ' + self.getRating()) 
    wrapper = textwrap.TextWrapper() 
    wrapper.subsequent_indent = 16 
    plotLine = 'Plot   : ' + self.getPlot() 
    lines = wrapper.fill(plotLine) 

    for line in lines: 
     print(line) 

    print ('---------------------------------------') 

def __init__(self, title, year, rating, plot, releaseDate, runtime): 
    self._title = title 
    self._year = year 
    self._rating = rating 
    self._plot = plot 
    self._releaseDate = releaseDate 
    self._runtime = runtime 
+2

그리고'getPlot'은 무엇입니까? – TigerhawkT3

+0

힌트 :'textwrap'은 텍스트의 _strings_을 감싸는 것입니다. 따라서 문자열을 전달해야합니다. –

+0

[질문 할 때 SO의 코드 이미지를 업로드 할 수없는 이유는 무엇입니까?] (http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code)를 참조하십시오. -on-so-when-asking-a-question) –

답변

0

내가 잘못 알아 냈어. 문제는 TextWrapper 모듈의 "subsequent_indent"플래그 때문입니다. 그것은 들여 쓰기를위한 문자열이 아니라 숫자 여야합니다.