Reputation: 25
I have this code that I'm working with:
import requests
import json
def getMovieTitles(substr):
titles = []
data = requests.get("https://jsonmock.hackerrank.com/api/movies/search/?Title={}".format(substr))
response = json.loads(data.content.decode('utf-8'))
for page in range(0, response["total_pages"]):
page_response = requests.get("https://jsonmock.hackerrank.com/api/movies/search/?Title={}&page={}".format(substr, page + 1))
page_content = json.loads(page_response.content.decode('utf-8'))
#print ('page_content', page_content, 'type(page_content)', type(page_content))
for item in range(0, len(page_content["data"])):
titles.append(str(page_content["data"][item]["Title"]))
titles.sort()
return titles
print(getMovieTitles("spiderman"))
My issue is that it only returns the titles of the first page and not the second page. Guidance on where I'm going wrong would be appreciated
Upvotes: 2
Views: 10722
Reputation: 5390
def getMovieTitles(substr):
import requests
url = "https://jsonmock.hackerrank.com/api/movies/search/?Title="
response = requests.get(url)
data = response.json()
total_page = data['total_pages']
per_page = data['per_page']
titles = []
for page in range(1, total_page + 1):
content = requests.get("https://jsonmock.hackerrank.com/api/movies/search/?Title={}&page={}".format(substr,page)).json()
for per_p in range(per_page):
titles.append(content['data'][per_p]['Title'])
return sorted(titles)
Upvotes: 1