Я пытаюсь отформатировать некоторый текст, используя модуль textwrap в python. По какой-то причине он говорит, что «объект типа int не имеет len()», и я не могу понять, почему. Это должно быть то, что я использую неправильно или что-то, что я делаю в неправильном порядке. Заранее спасибо.Ошибка модуля TextWrapper
Вот мой код, а не изображение.
импорт запросы JSON импорт импорт TextWrap
представляет собой модуль, который можно использовать, чтобы захватить информацию о фильме
с использованием OMDB (Open Database Movie).
класс 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
А что такое 'getPlot'? – TigerhawkT3
Подсказка: 'textwrap' предназначен для обтекания _strings_ текста. Поэтому вам нужно убедиться, что вы передадите ему строку. –
См. [Почему я не могу загружать изображения с кодом на SO при задании вопроса?] (Http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code -on-so-when-ask-a-question) –