def get_person(url): person = None try: person = db.open().query(Person).filter(Person.api_url == url).one() except: person = Person() json_data = get_json(url) person.parse_dictionary(json_data) db.save(person) for starship_url in json_data['starships']: starship = get_starship(starship_url) pilot = Pilot() pilot.person = person pilot.starship = starship db.save(pilot) for vehicle_url in json_data['vehicles']: vehicle = get_vehicle(vehicle_url) driver = Driver() driver.person = person driver.vehicle = vehicle db.save(driver) return person