搜索多个页面以进行匹配

时间:2018-11-02 13:40:36

标签: python

我正在尝试解决一个练习,基本上,我必须解析一个JSON页面并搜索一个对象。如果找不到对象,那么我必须在下一页搜索它。如果我要寻找的person在第一页上,那么我通过了测试,但是如果在另一页上,则失败了。 我检查并正确解析了每个页面,但是如果return不在第一页上,则始终是未定义的。

这是我的代码:

import urllib.request
import json

class Solution:

    def __new__(self, character):
        url = 'https://challenges.hackajob.co/swapi/api/people/'
        numberOfFilms = 0
        #
        # Some work here; return type and arguments should be according to the problem's requirements
        #
        numberOfFilms = self.search(self,character,url) 
        return numberOfFilms

    def search(self, character,url):
        numberOfFilms = 0
        found = False
        with urllib.request.urlopen(url) as response:
            data = response.read()
            jsonData =  json.loads(data.decode('utf-8'))

        for r in jsonData['results']:
            if r['name'] == character:
                return len(r['films'])
        if (jsonData['next']):
            nextPage = jsonData['next']
            self.search(self,character,nextPage)

1 个答案:

答案 0 :(得分:3)

将最后一行更改为return self.search(self,character,nextPage)