【发布时间】:2021-10-01 06:13:19
【问题描述】:
首先让我说我没有参加考试,只是为将来的考试做准备。我正在尝试解决“从电影数据库中检索信息的 HTTP GET 方法”。问题
: 需要在哪里查询 https://jsonmock.hackerrank.com/api/movies/search/?Title=substr(replace substr)。 初始化titles数组以存储总字符串元素。将满足搜索条件的每部电影的标题存储在标题数组中。 按升序对标题进行排序并将其作为您的答案返回。 来自网站的查询响应是一个 JSON 响应,包含以下五个字段: page : 当前页面。
per_page :每页的最大结果数。 total :搜索结果中的电影总数。 total_pages :为获得所有结果而必须查询的总页数。 data :包含电影信息的 JSON 对象数组,其中 Title 字段表示电影的标题。 为了获得所有结果,您可能必须发出多个页面请求。要按编号请求页面,您的查询应为 https://jsonmock.hackerrank.com/api/movies/search/?Title=substr&page=pageNumber ,替换 substr 和 pageNumber。
我已经能够使用 python 解决它,但我的解决方案将所有内容打印两次。如果有人可以提出解决方法,我将不胜感激。谢谢 :)
import requests
import json
def getMovieTitles(substr):
Movietitles = []
connection = requests.get("https://jsonmock.hackerrank.com/api/movies/search/?Title={}".format(substr))
response = json.loads(connection.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'))
for item in range(0, len(page_content["data"])):
Movietitles.append(str(page_content["data"][item]["Title"]))
Movietitles.sort()
return(Movietitles)
print(getMovieTitles("spiderman"))
【问题讨论】:
标签: python html json python-3.x