I am working with a Star Wars API from http://swapi.co/api/. Here's the problem that I was working on for the Star Wars API problem. And the code works and prints out the exact output that I desired. I would like to get some code review.
> # You are a Coordinator for the Star Wars rebel forces and are responsible for planning troop deployments. # You need a tool to help find starships with enough passenger capacity and pilots to fly them. # Build a CLI tool that takes as its single argument the number of people that # need to be transported and outputs a list of candidate pilot and starship names # that are each a valid possibility. # Assume that any pilot can be a candidate regardless of allegiance. # Assume the entire group of passengers must fit in a single starship. # You may skip starships with no pilots or with unknown passenger capacity. # Your tool must use the Star Wars API (http://swapi.co) to obtain the necessary data. # You may not use any of the official Star Wars API helper libraries but can use any other libraries you want # (http client, rest client, json).Example:
> # print-pilots-and-ships with minimum of 20 passengers
>
> # Luke Skywalker, Imperial shuttle
>
> # Chewbacca, Imperial shuttle
>
> # Han Solo, Imperial shuttle
>
> # Obi-Wan Kenobi, Trade Federation cruiser
>
> # Anakin Skywalker, Trade Federation cruiser
import sys
import requests
import json
import urllib.parse
#number of pages in JSON feed
def print_page(page_num, num_passenger):
    endpoint = "https://swapi.co/api/starships/?"
    type = 'json'
    #specifies api parameters
    url = endpoint + urllib.parse.urlencode({"format": type, "page": page_num})
    #gets info
    json_data = requests.get(url).json()
    # number_of_ship = json_data['count']
    if 'results' in json_data:
      for ship in json_data['results']:
          if has_pilot(ship) and has_enough_passenger(ship, num_passenger):
              print_pilots_on(ship)
def get_pilot_name(pilot):
    type = 'json'
    #specifies api parameters
    url = pilot
    #gets info
    json_data = requests.get(url).json()
    return json_data["name"]
def print_pilots_on(ship):
    for pilot in ship['pilots']:
       print(get_pilot_name(pilot), ship['name'])
def has_pilot(ship):
    if ship['pilots']:
      return True
    return False
def has_enough_passenger(ship, num):
    if ship['passengers'] != "unknown" and int(ship['passengers']) >= num:
      return True
    return False
def print_pilots_and_ships(num_passenger):
    page_list = [1,2,3,4,5,6,7,8,9]
    # list to store names
    for page in page_list:
        print_page(page, num_passenger)
if __name__ == '__main__':
    num_passenger = int(20)
    print_pilots_and_ships(num_passenger)


