Eu estou tentando uma forma de retornar os dados organizados, se eu printar no Main, funciona de boa, mas qdo eu jogo numa def e tenta criar um loop usando o return, o return não entra em loop, não tem erro, mas ele só me traz a primeira busca, esse é o trecho em questão:
def format(self): for d in range(0, len(self.data)): return f"Title: {self.data['Search'][d]['Title']}\n" f"Year: {self.data['Search'][d]['Year']}\n" f""
Se quiser testar, são três arquivos:
primeiro arquivo nomeie 'main.py'
import API_Movies
m = str(input('Type a movie: '))
movie = API_Movies.Search_Movie(m)
print(movie)
segundo arquivo nomeie 'API_Movies.py'
import re
import requests
import API_Key
class Search_Movie:
def __init__(self, movie):
movie = str(re.sub(' ', '+', movie)).lower().strip()
if self.request(movie):
self.movie = movie
else:
raise ValueError('Invalid Name')
def __str__(self):
return self.format()
def request(self, movie):
try:
data = requests.get(f'http://www.omdbapi.com/?s={movie}&apikey={API_Key.API_key}')
self.data = data.json()
return self.data
except:
raise ValueError('Invalid or not found name')
def format(self):
for d in range(0, len(self.data)):
return f"Title: {self.data['Search'][d]['Title']}\n" \
f"Year: {self.data['Search'][d]['Year']}\n" \
f""
terceiro arquivo nomeie 'API_key.py'
API_key = 'c60ebd9f'