In this lesson, you will be introduced to Python generators. You will see how a generator can replace a common function and learn the benefits of doing so. You will learn what role the yield
keyword provides in functions and how it differs from a return
. Building on that knowledge, you will learn how to build a generator to recursively crawl an API (swapi.co) and return Star Wars characters from "The Force Awakens".
import json import requests def crawl(link): response = requests.get(link) api_rquests = json.loads(response.content) for character in api_rquests['results']: if 'https://swapi.co/api/films/7' in character['films']: yield character['name'] if 'next' in api_rquests and api_rquests['next'] is not None: next_page = crawl(api_rquests['next']) for page in next_page: yield page if __name__ == "__main__": force_awakens = crawl('https://swapi.co/api/people') for result in force_awakens: print(result)