Created
July 18, 2024 19:54
-
-
Save faustinoaq/1d4e548486302d04d1bcdb80597faf8d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "00rbAxorEVOV" | |
}, | |
"source": [ | |
"# Intro to Python API Requests Development\n", | |
"<b>Objectives</b>\n", | |
"* Learn how to use the Python `Requests` module.\n", | |
"* Learn how to connect to API web data resources to extract data using HTTP methods.\n", | |
"* Learn how to read and manipulate API JSON response data.\n", | |
"* Learn how to deal with pagination in APIs (looping through pages to gather data).\n", | |
"* Best practices for writing API code that helps with troubleshooting and debugging.\n", | |
"\n", | |
"<b>TMDB Background Info</b> \n", | |
"The Movie Database (TMDB) is a popular, community-built database for movies and TV shows. All the content has been added and updated by users dating back to the year 2008. TMDB has a strong focus on collecting data from around the globe, and covers a wide range of data. They created a free API which allows users to extract a wide range of data from their database, which makes it a perfect environment to learn basic API development skills. \n", | |
"\n", | |
"<b>TMDB Rules and Limitations</b> \n", | |
"The API limits requests to 500 pages and 20 records per page\n", | |
"\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "y4V1z_8vEVOf" | |
}, | |
"source": [ | |
"# 1.0 Import libraries, modules, and create variables for your API \n", | |
"* We'll be using the Python Requests module to manage our API connection along with other common libraries for API connection and data management." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "6XecbEZiEVOg" | |
}, | |
"outputs": [], | |
"source": [ | |
"import json\n", | |
"import requests\n", | |
"import pandas as pd\n", | |
"import re\n", | |
"from pprint import pprint\n", | |
"from pandas import json_normalize\n", | |
"from dateutil.parser import parse\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "ghNRj-f2EVOh" | |
}, | |
"outputs": [], | |
"source": [ | |
"# Establishing variable for the API connection\n", | |
"api_key = ('460f7b576a1b5c789d7d574f7fcc4f5f')\n", | |
"language = ('en-US')\n", | |
"url = ('https://api.themoviedb.org/3/')\n", | |
"popular_movie_endpoint =(r'movie/popular')\n", | |
"params={'api_key':api_key,'language':language}\n", | |
"headers = {'accept':'application/json'}" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "Hh_ZrR7wEVOj" | |
}, | |
"source": [ | |
"# 2.0 Basic API Connection Check \n", | |
"* It's good practice to test your API connection before writing your code. This gives you the opportunity to check the connection and to get an initial look at the JSON data.\n", | |
"* The objective is to get a response code of 200 and a JSON output.\n", | |
"* Using pretty print `pprint()` helps to improve the readability of JSON data.\n", | |
"\n", | |
"<b>Note:</b> The JSON output has 4 main keys, `page`, `results`, `total_pages`, and `total_results`" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "x0NWTRuNEVOj", | |
"outputId": "9418f456-7f0b-44c6-e09a-cfab4472bfec", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
} | |
}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"Response Code: 200\n", | |
"URL Link: https://api.themoviedb.org/3/movie/popular?api_key=460f7b576a1b5c789d7d574f7fcc4f5f&language=en-US \n", | |
"\n", | |
"{'page': 1,\n", | |
" 'results': [{'adult': False,\n", | |
" 'backdrop_path': '/xg27NrXi7VXCGUr7MG75UqLl6Vg.jpg',\n", | |
" 'genre_ids': [16, 10751, 12, 35],\n", | |
" 'id': 1022789,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Inside Out 2',\n", | |
" 'overview': \"Teenager Riley's mind headquarters is undergoing a \"\n", | |
" 'sudden demolition to make room for something '\n", | |
" 'entirely unexpected: new Emotions! Joy, Sadness, '\n", | |
" 'Anger, Fear and Disgust, who’ve long been running a '\n", | |
" 'successful operation by all accounts, aren’t sure '\n", | |
" 'how to feel when Anxiety shows up. And it looks '\n", | |
" 'like she’s not alone.',\n", | |
" 'popularity': 5389.964,\n", | |
" 'poster_path': '/vpnVM9B6NMmQpWeZvzLvDESb2QY.jpg',\n", | |
" 'release_date': '2024-06-11',\n", | |
" 'title': 'Inside Out 2',\n", | |
" 'video': False,\n", | |
" 'vote_average': 7.699,\n", | |
" 'vote_count': 1868},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/fDmci71SMkfZM8RnCuXJVDPaSdE.jpg',\n", | |
" 'genre_ids': [16, 10751, 35, 28],\n", | |
" 'id': 519182,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Despicable Me 4',\n", | |
" 'overview': 'Gru and Lucy and their girls — Margo, Edith and '\n", | |
" 'Agnes — welcome a new member to the Gru family, Gru '\n", | |
" 'Jr., who is intent on tormenting his dad. '\n", | |
" 'Meanwhile, Gru faces a new nemesis in Maxime Le Mal '\n", | |
" 'and his femme fatale girlfriend Valentina, forcing '\n", | |
" 'the family to go on the run.',\n", | |
" 'popularity': 4182.19,\n", | |
" 'poster_path': '/3w84hCFJATpiCO5g8hpdWVPBbmq.jpg',\n", | |
" 'release_date': '2024-06-20',\n", | |
" 'title': 'Despicable Me 4',\n", | |
" 'video': False,\n", | |
" 'vote_average': 7.5,\n", | |
" 'vote_count': 301},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/Akv9GlCCMrzcDkVz4ad8MdLl9DK.jpg',\n", | |
" 'genre_ids': [16, 35, 10751, 12],\n", | |
" 'id': 748783,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'The Garfield Movie',\n", | |
" 'overview': 'Garfield, the world-famous, Monday-hating, '\n", | |
" 'lasagna-loving indoor cat, is about to have a wild '\n", | |
" 'outdoor adventure! After an unexpected reunion with '\n", | |
" 'his long-lost father – scruffy street cat Vic – '\n", | |
" 'Garfield and his canine friend Odie are forced from '\n", | |
" 'their perfectly pampered life into joining Vic in a '\n", | |
" 'hilarious, high-stakes heist.',\n", | |
" 'popularity': 2209.679,\n", | |
" 'poster_path': '/p6AbOJvMQhBmffd0PIv0u8ghWeY.jpg',\n", | |
" 'release_date': '2024-04-30',\n", | |
" 'title': 'The Garfield Movie',\n", | |
" 'video': False,\n", | |
" 'vote_average': 7.274,\n", | |
" 'vote_count': 451},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/wNAhuOZ3Zf84jCIlrcI6JhgmY5q.jpg',\n", | |
" 'genre_ids': [28, 12, 878],\n", | |
" 'id': 786892,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Furiosa: A Mad Max Saga',\n", | |
" 'overview': 'As the world fell, young Furiosa is snatched from '\n", | |
" 'the Green Place of Many Mothers and falls into the '\n", | |
" 'hands of a great Biker Horde led by the Warlord '\n", | |
" 'Dementus. Sweeping through the Wasteland they come '\n", | |
" 'across the Citadel presided over by The Immortan '\n", | |
" 'Joe. While the two Tyrants war for dominance, '\n", | |
" 'Furiosa must survive many trials as she puts '\n", | |
" 'together the means to find her way home.',\n", | |
" 'popularity': 1802.966,\n", | |
" 'poster_path': '/iADOJ8Zymht2JPMoy3R7xceZprc.jpg',\n", | |
" 'release_date': '2024-05-22',\n", | |
" 'title': 'Furiosa: A Mad Max Saga',\n", | |
" 'video': False,\n", | |
" 'vote_average': 7.6,\n", | |
" 'vote_count': 2170},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/fqv8v6AycXKsivp1T5yKtLbGXce.jpg',\n", | |
" 'genre_ids': [878, 12, 28],\n", | |
" 'id': 653346,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Kingdom of the Planet of the Apes',\n", | |
" 'overview': \"Several generations following Caesar's reign, apes \"\n", | |
" '– now the dominant species – live harmoniously '\n", | |
" 'while humans have been reduced to living in the '\n", | |
" 'shadows. As a new tyrannical ape leader builds his '\n", | |
" 'empire, one young ape undertakes a harrowing '\n", | |
" \"journey that will cause him to question all he's \"\n", | |
" 'known about the past and to make choices that will '\n", | |
" 'define a future for apes and humans alike.',\n", | |
" 'popularity': 1685.471,\n", | |
" 'poster_path': '/gKkl37BQuKTanygYQG1pyYgLVgf.jpg',\n", | |
" 'release_date': '2024-05-08',\n", | |
" 'title': 'Kingdom of the Planet of the Apes',\n", | |
" 'video': False,\n", | |
" 'vote_average': 7.131,\n", | |
" 'vote_count': 1893},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/dn3gbDpXPSwC6saMJOHkCiFA9jn.jpg',\n", | |
" 'genre_ids': [14, 12, 10751, 35],\n", | |
" 'id': 974262,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Descendants: The Rise of Red',\n", | |
" 'overview': 'After the Queen of Hearts incites a coup on '\n", | |
" 'Auradon, her rebellious daughter Red and '\n", | |
" \"Cinderella's perfectionist daughter Chloe join \"\n", | |
" 'forces and travel back in time to try to undo the '\n", | |
" \"traumatic event that set Red's mother down her \"\n", | |
" 'villainous path.',\n", | |
" 'popularity': 1277.167,\n", | |
" 'poster_path': '/dwxWNJ9oDLqNPbA0884h5J7mfqy.jpg',\n", | |
" 'release_date': '2024-07-11',\n", | |
" 'title': 'Descendants: The Rise of Red',\n", | |
" 'video': False,\n", | |
" 'vote_average': 7.261,\n", | |
" 'vote_count': 132},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/gRApXuxWmO2forYTuTmcz5RaNUV.jpg',\n", | |
" 'genre_ids': [28, 80, 53, 35],\n", | |
" 'id': 573435,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Bad Boys: Ride or Die',\n", | |
" 'overview': 'After their late former Captain is framed, Lowrey '\n", | |
" 'and Burnett try to clear his name, only to end up '\n", | |
" 'on the run themselves.',\n", | |
" 'popularity': 1263.839,\n", | |
" 'poster_path': '/nP6RliHjxsz4irTKsxe8FRhKZYl.jpg',\n", | |
" 'release_date': '2024-06-05',\n", | |
" 'title': 'Bad Boys: Ride or Die',\n", | |
" 'video': False,\n", | |
" 'vote_average': 7.11,\n", | |
" 'vote_count': 568},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/rrwt0u1rW685u9bJ9ougg5HJEHC.jpg',\n", | |
" 'genre_ids': [28, 35, 80],\n", | |
" 'id': 280180,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Beverly Hills Cop: Axel F',\n", | |
" 'overview': 'Forty years after his unforgettable first case in '\n", | |
" 'Beverly Hills, Detroit cop Axel Foley returns to do '\n", | |
" 'what he does best: solve crimes and cause chaos.',\n", | |
" 'popularity': 1237.903,\n", | |
" 'poster_path': '/zszRKfzjM5jltiq8rk6rasKVpUv.jpg',\n", | |
" 'release_date': '2024-06-20',\n", | |
" 'title': 'Beverly Hills Cop: Axel F',\n", | |
" 'video': False,\n", | |
" 'vote_average': 6.9,\n", | |
" 'vote_count': 591},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/lA6KdSkCTxwzvqzPqxch997RabQ.jpg',\n", | |
" 'genre_ids': [28, 53],\n", | |
" 'id': 560016,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Monkey Man',\n", | |
" 'overview': 'Kid is an anonymous young man who ekes out a meager '\n", | |
" 'living in an underground fight club where, night '\n", | |
" 'after night, wearing a gorilla mask, he is beaten '\n", | |
" 'bloody by more popular fighters for cash. After '\n", | |
" 'years of suppressed rage, Kid discovers a way to '\n", | |
" 'infiltrate the enclave of the city’s sinister '\n", | |
" 'elite. As his childhood trauma boils over, his '\n", | |
" 'mysteriously scarred hands unleash an explosive '\n", | |
" 'campaign of retribution to settle the score with '\n", | |
" 'the men who took everything from him.',\n", | |
" 'popularity': 1148.565,\n", | |
" 'poster_path': '/4lhR4L2vzzjl68P1zJyCH755Oz4.jpg',\n", | |
" 'release_date': '2024-04-03',\n", | |
" 'title': 'Monkey Man',\n", | |
" 'video': False,\n", | |
" 'vote_average': 7.1,\n", | |
" 'vote_count': 600},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/8fNBsXpgMvqk75SPsZzTmIqSRxY.jpg',\n", | |
" 'genre_ids': [27, 53],\n", | |
" 'id': 646683,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'The Exorcism',\n", | |
" 'overview': 'A troubled actor begins to unravel while shooting a '\n", | |
" 'supernatural horror film, leading his estranged '\n", | |
" \"daughter to wonder if he's slipping back into his \"\n", | |
" \"past addictions or if there's something more \"\n", | |
" 'sinister at play.',\n", | |
" 'popularity': 1119.067,\n", | |
" 'poster_path': '/ar2h87jlTfMlrDZefR3VFz1SfgH.jpg',\n", | |
" 'release_date': '2024-05-30',\n", | |
" 'title': 'The Exorcism',\n", | |
" 'video': False,\n", | |
" 'vote_average': 4.3,\n", | |
" 'vote_count': 67},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/lLh39Th5plbrQgbQ4zyIULsd0Pp.jpg',\n", | |
" 'genre_ids': [878, 28, 12],\n", | |
" 'id': 823464,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Godzilla x Kong: The New Empire',\n", | |
" 'overview': 'Following their explosive showdown, Godzilla and '\n", | |
" 'Kong must reunite against a colossal undiscovered '\n", | |
" 'threat hidden within our world, challenging their '\n", | |
" 'very existence – and our own.',\n", | |
" 'popularity': 998.116,\n", | |
" 'poster_path': '/z1p34vh7dEOnLDmyCrlUVLuoDzd.jpg',\n", | |
" 'release_date': '2024-03-27',\n", | |
" 'title': 'Godzilla x Kong: The New Empire',\n", | |
" 'video': False,\n", | |
" 'vote_average': 7.202,\n", | |
" 'vote_count': 3196},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/oSJV6nAfHzyE9v6oEAXmDjbko00.jpg',\n", | |
" 'genre_ids': [14, 12],\n", | |
" 'id': 943344,\n", | |
" 'original_language': 'zh',\n", | |
" 'original_title': '地底怪物',\n", | |
" 'overview': '',\n", | |
" 'popularity': 978.45,\n", | |
" 'poster_path': '/lWVwWRLqpS1OaNg7KT0ZecSW0PK.jpg',\n", | |
" 'release_date': '2023-04-27',\n", | |
" 'title': 'Underground Monster',\n", | |
" 'video': False,\n", | |
" 'vote_average': 3.8,\n", | |
" 'vote_count': 5},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/dbtGinhWWKgQLQ0hjZHMFWxBJcJ.jpg',\n", | |
" 'genre_ids': [28, 878, 27, 53],\n", | |
" 'id': 1159518,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Black Noise',\n", | |
" 'overview': 'Members of an elite security team deployed to '\n", | |
" 'rescue a VIP on an exclusive island.The rescue '\n", | |
" 'mission becomes a desperate attempt to survive, '\n", | |
" 'escape the island and elude the sinister presence '\n", | |
" 'that seeks to harm them.',\n", | |
" 'popularity': 772.167,\n", | |
" 'poster_path': '/snKpXexv5dtWqEKEmXrJtp8QGQC.jpg',\n", | |
" 'release_date': '2023-11-03',\n", | |
" 'title': 'Black Noise',\n", | |
" 'video': False,\n", | |
" 'vote_average': 5.313,\n", | |
" 'vote_count': 16},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/uNTciMXpCQDg7gvgMsPCdnxo6Re.jpg',\n", | |
" 'genre_ids': [28, 53],\n", | |
" 'id': 1114738,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Boneyard',\n", | |
" 'overview': 'After Police Chief Carter discovers the remains of '\n", | |
" 'eleven women, FBI Special Agent Petrovick is '\n", | |
" 'recruited to profile the serial killer responsible '\n", | |
" 'for the infamous \"boneyard\" killings. As the police '\n", | |
" 'force, narcotics agency, and FBI lock horns, a '\n", | |
" 'tangled web of intrigue turns everyone into a '\n", | |
" 'suspect.',\n", | |
" 'popularity': 768.042,\n", | |
" 'poster_path': '/xkNK36hQv8SWiwiQoE7naRfP0zL.jpg',\n", | |
" 'release_date': '2024-07-05',\n", | |
" 'title': 'Boneyard',\n", | |
" 'video': False,\n", | |
" 'vote_average': 5.788,\n", | |
" 'vote_count': 40},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/adAJDB2Au3x5ve2YyWaEYy4EUw.jpg',\n", | |
" 'genre_ids': [18, 10749, 35],\n", | |
" 'id': 1191610,\n", | |
" 'original_language': 'es',\n", | |
" 'original_title': 'Goyo',\n", | |
" 'overview': 'A young autistic museum guide lives by a strict '\n", | |
" 'routine — until he falls in love with his coworker '\n", | |
" 'and must confront a whirlwind of new, intense '\n", | |
" 'emotions.',\n", | |
" 'popularity': 735.939,\n", | |
" 'poster_path': '/fCjC1RRbEJUpDjM55RNUMXQen0b.jpg',\n", | |
" 'release_date': '2024-06-27',\n", | |
" 'title': 'Goyo',\n", | |
" 'video': False,\n", | |
" 'vote_average': 6.788,\n", | |
" 'vote_count': 26},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/dvBCdCohwWbsP5qAaglOXagDMtk.jpg',\n", | |
" 'genre_ids': [878, 28, 35],\n", | |
" 'id': 533535,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Deadpool & Wolverine',\n", | |
" 'overview': 'A listless Wade Wilson toils away in civilian life '\n", | |
" 'with his days as the morally flexible mercenary, '\n", | |
" 'Deadpool, behind him. But when his homeworld faces '\n", | |
" 'an existential threat, Wade must reluctantly '\n", | |
" 'suit-up again with an even more reluctant '\n", | |
" 'Wolverine.',\n", | |
" 'popularity': 712.349,\n", | |
" 'poster_path': '/jbwYaoYWZwxtPP76AZnfYKQjCEB.jpg',\n", | |
" 'release_date': '2024-07-24',\n", | |
" 'title': 'Deadpool & Wolverine',\n", | |
" 'video': False,\n", | |
" 'vote_average': 0.0,\n", | |
" 'vote_count': 0},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/a4IWRYNMNMszIkRbEIiNsRg6cvt.jpg',\n", | |
" 'genre_ids': [10752, 28, 18],\n", | |
" 'id': 929590,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Civil War',\n", | |
" 'overview': 'In the near future, a group of war journalists '\n", | |
" 'attempt to survive while reporting the truth as the '\n", | |
" 'United States stands on the brink of civil war.',\n", | |
" 'popularity': 708.024,\n", | |
" 'poster_path': '/sh7Rg8Er3tFcN9BpKIPOMvALgZd.jpg',\n", | |
" 'release_date': '2024-04-10',\n", | |
" 'title': 'Civil War',\n", | |
" 'video': False,\n", | |
" 'vote_average': 6.988,\n", | |
" 'vote_count': 1907},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/iTWrsOVsUqcwYSxrpINNs3hG2nC.jpg',\n", | |
" 'genre_ids': [53, 27, 28, 9648],\n", | |
" 'id': 1001311,\n", | |
" 'original_language': 'fr',\n", | |
" 'original_title': 'Sous la Seine',\n", | |
" 'overview': 'In order to save Paris from an international '\n", | |
" 'bloodbath, a grieving scientist is forced to face '\n", | |
" 'her tragic past when a giant shark appears in the '\n", | |
" 'Seine.',\n", | |
" 'popularity': 706.026,\n", | |
" 'poster_path': '/qZPLK5ktRKa3CL4sKRZtj8UlPYc.jpg',\n", | |
" 'release_date': '2024-06-04',\n", | |
" 'title': 'Under Paris',\n", | |
" 'video': False,\n", | |
" 'vote_average': 6.093,\n", | |
" 'vote_count': 910},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/j29ekbcLpBvxnGk6LjdTc2EI5SA.jpg',\n", | |
" 'genre_ids': [16, 10751, 12, 18, 35],\n", | |
" 'id': 150540,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Inside Out',\n", | |
" 'overview': 'When 11-year-old Riley moves to a new city, her '\n", | |
" 'Emotions team up to help her through the '\n", | |
" 'transition. Joy, Fear, Anger, Disgust and Sadness '\n", | |
" 'work together, but when Joy and Sadness get lost, '\n", | |
" 'they must journey through unfamiliar places to get '\n", | |
" 'back home.',\n", | |
" 'popularity': 680.264,\n", | |
" 'poster_path': '/2H1TmgdfNtsKlU9jKdeNyYL5y8T.jpg',\n", | |
" 'release_date': '2015-06-17',\n", | |
" 'title': 'Inside Out',\n", | |
" 'video': False,\n", | |
" 'vote_average': 7.916,\n", | |
" 'vote_count': 21227},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/aATi2PtaOQCVAquCym6OU0Z4FjY.jpg',\n", | |
" 'genre_ids': [28, 80, 53],\n", | |
" 'id': 704673,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Trigger Warning',\n", | |
" 'overview': 'A Special Forces commando uncovers a dangerous '\n", | |
" 'conspiracy when she returns to her hometown looking '\n", | |
" \"for answers into her beloved father's death.\",\n", | |
" 'popularity': 642.399,\n", | |
" 'poster_path': '/lJN24nn28s5afC1UnLPYRgYOp1K.jpg',\n", | |
" 'release_date': '2024-06-20',\n", | |
" 'title': 'Trigger Warning',\n", | |
" 'video': False,\n", | |
" 'vote_average': 5.9,\n", | |
" 'vote_count': 322}],\n", | |
" 'total_pages': 45146,\n", | |
" 'total_results': 902905}\n" | |
] | |
} | |
], | |
"source": [ | |
"# Quick API connection check\n", | |
"response = requests.get(\"https://api.themoviedb.org/3/movie/popular\", headers=headers, params={'api_key':api_key,'language':language})\n", | |
"\n", | |
"# Printing the response code and url\n", | |
"print('Response Code: ' + str(response.status_code))\n", | |
"print('URL Link: ' + response.url, '\\n')\n", | |
"\n", | |
"# Formtting the JSON response to print using the pretty print module, which helps with readability of JSON files\n", | |
"pprint(response.json())" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "FrVJ1WpsEVOl" | |
}, | |
"source": [ | |
"# 3.0 Build a function to pull data from the TMDB API \n", | |
"* The main objective is to get data from the popular movies endpoint. \n", | |
"* Use try/exeption blocks to capture error handling. \n", | |
"* Assign the function to a variable called `popular_movies_data`. This is good practice when reusing or calling functions later in the code.\n", | |
"\n", | |
"<b>Note:</b> Try using `pprint(json_file)` to see the difference between the two outputs.\n", | |
" " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "0Y5u_DalEVOl" | |
}, | |
"outputs": [], | |
"source": [ | |
"def get_popular_movie_data():\n", | |
" try:\n", | |
" response = requests.get(url + popular_movie_endpoint, headers=headers, params=params, verify=True)\n", | |
" print('Response Code: ' + str(response.status_code))\n", | |
" print('URL Link: ' + response.url, '\\n')\n", | |
" json_file = response.json()\n", | |
" except Exception as e:\n", | |
" print(f'Failed to connect with URL: {url}')\n", | |
" print(e)\n", | |
" raise SystemExit\n", | |
" return json_file\n", | |
"\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "9Mu6u8X0EVOm", | |
"outputId": "5ba71a48-c13d-4b83-8d6e-2c3cc3801f95", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
} | |
}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"Response Code: 200\n", | |
"URL Link: https://api.themoviedb.org/3/movie/popular?api_key=460f7b576a1b5c789d7d574f7fcc4f5f&language=en-US \n", | |
"\n" | |
] | |
}, | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"{'page': 1,\n", | |
" 'results': [{'adult': False,\n", | |
" 'backdrop_path': '/xg27NrXi7VXCGUr7MG75UqLl6Vg.jpg',\n", | |
" 'genre_ids': [16, 10751, 12, 35],\n", | |
" 'id': 1022789,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Inside Out 2',\n", | |
" 'overview': \"Teenager Riley's mind headquarters is undergoing a sudden demolition to make room for something entirely unexpected: new Emotions! Joy, Sadness, Anger, Fear and Disgust, who’ve long been running a successful operation by all accounts, aren’t sure how to feel when Anxiety shows up. And it looks like she’s not alone.\",\n", | |
" 'popularity': 5389.964,\n", | |
" 'poster_path': '/vpnVM9B6NMmQpWeZvzLvDESb2QY.jpg',\n", | |
" 'release_date': '2024-06-11',\n", | |
" 'title': 'Inside Out 2',\n", | |
" 'video': False,\n", | |
" 'vote_average': 7.699,\n", | |
" 'vote_count': 1868},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/fDmci71SMkfZM8RnCuXJVDPaSdE.jpg',\n", | |
" 'genre_ids': [16, 10751, 35, 28],\n", | |
" 'id': 519182,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Despicable Me 4',\n", | |
" 'overview': 'Gru and Lucy and their girls — Margo, Edith and Agnes — welcome a new member to the Gru family, Gru Jr., who is intent on tormenting his dad. Meanwhile, Gru faces a new nemesis in Maxime Le Mal and his femme fatale girlfriend Valentina, forcing the family to go on the run.',\n", | |
" 'popularity': 4182.19,\n", | |
" 'poster_path': '/3w84hCFJATpiCO5g8hpdWVPBbmq.jpg',\n", | |
" 'release_date': '2024-06-20',\n", | |
" 'title': 'Despicable Me 4',\n", | |
" 'video': False,\n", | |
" 'vote_average': 7.5,\n", | |
" 'vote_count': 301},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/Akv9GlCCMrzcDkVz4ad8MdLl9DK.jpg',\n", | |
" 'genre_ids': [16, 35, 10751, 12],\n", | |
" 'id': 748783,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'The Garfield Movie',\n", | |
" 'overview': 'Garfield, the world-famous, Monday-hating, lasagna-loving indoor cat, is about to have a wild outdoor adventure! After an unexpected reunion with his long-lost father – scruffy street cat Vic – Garfield and his canine friend Odie are forced from their perfectly pampered life into joining Vic in a hilarious, high-stakes heist.',\n", | |
" 'popularity': 2209.679,\n", | |
" 'poster_path': '/p6AbOJvMQhBmffd0PIv0u8ghWeY.jpg',\n", | |
" 'release_date': '2024-04-30',\n", | |
" 'title': 'The Garfield Movie',\n", | |
" 'video': False,\n", | |
" 'vote_average': 7.274,\n", | |
" 'vote_count': 451},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/wNAhuOZ3Zf84jCIlrcI6JhgmY5q.jpg',\n", | |
" 'genre_ids': [28, 12, 878],\n", | |
" 'id': 786892,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Furiosa: A Mad Max Saga',\n", | |
" 'overview': 'As the world fell, young Furiosa is snatched from the Green Place of Many Mothers and falls into the hands of a great Biker Horde led by the Warlord Dementus. Sweeping through the Wasteland they come across the Citadel presided over by The Immortan Joe. While the two Tyrants war for dominance, Furiosa must survive many trials as she puts together the means to find her way home.',\n", | |
" 'popularity': 1802.966,\n", | |
" 'poster_path': '/iADOJ8Zymht2JPMoy3R7xceZprc.jpg',\n", | |
" 'release_date': '2024-05-22',\n", | |
" 'title': 'Furiosa: A Mad Max Saga',\n", | |
" 'video': False,\n", | |
" 'vote_average': 7.6,\n", | |
" 'vote_count': 2170},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/fqv8v6AycXKsivp1T5yKtLbGXce.jpg',\n", | |
" 'genre_ids': [878, 12, 28],\n", | |
" 'id': 653346,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Kingdom of the Planet of the Apes',\n", | |
" 'overview': \"Several generations following Caesar's reign, apes – now the dominant species – live harmoniously while humans have been reduced to living in the shadows. As a new tyrannical ape leader builds his empire, one young ape undertakes a harrowing journey that will cause him to question all he's known about the past and to make choices that will define a future for apes and humans alike.\",\n", | |
" 'popularity': 1685.471,\n", | |
" 'poster_path': '/gKkl37BQuKTanygYQG1pyYgLVgf.jpg',\n", | |
" 'release_date': '2024-05-08',\n", | |
" 'title': 'Kingdom of the Planet of the Apes',\n", | |
" 'video': False,\n", | |
" 'vote_average': 7.131,\n", | |
" 'vote_count': 1893},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/dn3gbDpXPSwC6saMJOHkCiFA9jn.jpg',\n", | |
" 'genre_ids': [14, 12, 10751, 35],\n", | |
" 'id': 974262,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Descendants: The Rise of Red',\n", | |
" 'overview': \"After the Queen of Hearts incites a coup on Auradon, her rebellious daughter Red and Cinderella's perfectionist daughter Chloe join forces and travel back in time to try to undo the traumatic event that set Red's mother down her villainous path.\",\n", | |
" 'popularity': 1277.167,\n", | |
" 'poster_path': '/dwxWNJ9oDLqNPbA0884h5J7mfqy.jpg',\n", | |
" 'release_date': '2024-07-11',\n", | |
" 'title': 'Descendants: The Rise of Red',\n", | |
" 'video': False,\n", | |
" 'vote_average': 7.261,\n", | |
" 'vote_count': 132},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/gRApXuxWmO2forYTuTmcz5RaNUV.jpg',\n", | |
" 'genre_ids': [28, 80, 53, 35],\n", | |
" 'id': 573435,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Bad Boys: Ride or Die',\n", | |
" 'overview': 'After their late former Captain is framed, Lowrey and Burnett try to clear his name, only to end up on the run themselves.',\n", | |
" 'popularity': 1263.839,\n", | |
" 'poster_path': '/nP6RliHjxsz4irTKsxe8FRhKZYl.jpg',\n", | |
" 'release_date': '2024-06-05',\n", | |
" 'title': 'Bad Boys: Ride or Die',\n", | |
" 'video': False,\n", | |
" 'vote_average': 7.11,\n", | |
" 'vote_count': 568},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/rrwt0u1rW685u9bJ9ougg5HJEHC.jpg',\n", | |
" 'genre_ids': [28, 35, 80],\n", | |
" 'id': 280180,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Beverly Hills Cop: Axel F',\n", | |
" 'overview': 'Forty years after his unforgettable first case in Beverly Hills, Detroit cop Axel Foley returns to do what he does best: solve crimes and cause chaos.',\n", | |
" 'popularity': 1237.903,\n", | |
" 'poster_path': '/zszRKfzjM5jltiq8rk6rasKVpUv.jpg',\n", | |
" 'release_date': '2024-06-20',\n", | |
" 'title': 'Beverly Hills Cop: Axel F',\n", | |
" 'video': False,\n", | |
" 'vote_average': 6.9,\n", | |
" 'vote_count': 591},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/lA6KdSkCTxwzvqzPqxch997RabQ.jpg',\n", | |
" 'genre_ids': [28, 53],\n", | |
" 'id': 560016,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Monkey Man',\n", | |
" 'overview': 'Kid is an anonymous young man who ekes out a meager living in an underground fight club where, night after night, wearing a gorilla mask, he is beaten bloody by more popular fighters for cash. After years of suppressed rage, Kid discovers a way to infiltrate the enclave of the city’s sinister elite. As his childhood trauma boils over, his mysteriously scarred hands unleash an explosive campaign of retribution to settle the score with the men who took everything from him.',\n", | |
" 'popularity': 1148.565,\n", | |
" 'poster_path': '/4lhR4L2vzzjl68P1zJyCH755Oz4.jpg',\n", | |
" 'release_date': '2024-04-03',\n", | |
" 'title': 'Monkey Man',\n", | |
" 'video': False,\n", | |
" 'vote_average': 7.1,\n", | |
" 'vote_count': 600},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/8fNBsXpgMvqk75SPsZzTmIqSRxY.jpg',\n", | |
" 'genre_ids': [27, 53],\n", | |
" 'id': 646683,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'The Exorcism',\n", | |
" 'overview': \"A troubled actor begins to unravel while shooting a supernatural horror film, leading his estranged daughter to wonder if he's slipping back into his past addictions or if there's something more sinister at play.\",\n", | |
" 'popularity': 1119.067,\n", | |
" 'poster_path': '/ar2h87jlTfMlrDZefR3VFz1SfgH.jpg',\n", | |
" 'release_date': '2024-05-30',\n", | |
" 'title': 'The Exorcism',\n", | |
" 'video': False,\n", | |
" 'vote_average': 4.3,\n", | |
" 'vote_count': 67},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/lLh39Th5plbrQgbQ4zyIULsd0Pp.jpg',\n", | |
" 'genre_ids': [878, 28, 12],\n", | |
" 'id': 823464,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Godzilla x Kong: The New Empire',\n", | |
" 'overview': 'Following their explosive showdown, Godzilla and Kong must reunite against a colossal undiscovered threat hidden within our world, challenging their very existence – and our own.',\n", | |
" 'popularity': 998.116,\n", | |
" 'poster_path': '/z1p34vh7dEOnLDmyCrlUVLuoDzd.jpg',\n", | |
" 'release_date': '2024-03-27',\n", | |
" 'title': 'Godzilla x Kong: The New Empire',\n", | |
" 'video': False,\n", | |
" 'vote_average': 7.202,\n", | |
" 'vote_count': 3196},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/oSJV6nAfHzyE9v6oEAXmDjbko00.jpg',\n", | |
" 'genre_ids': [14, 12],\n", | |
" 'id': 943344,\n", | |
" 'original_language': 'zh',\n", | |
" 'original_title': '地底怪物',\n", | |
" 'overview': '',\n", | |
" 'popularity': 978.45,\n", | |
" 'poster_path': '/lWVwWRLqpS1OaNg7KT0ZecSW0PK.jpg',\n", | |
" 'release_date': '2023-04-27',\n", | |
" 'title': 'Underground Monster',\n", | |
" 'video': False,\n", | |
" 'vote_average': 3.8,\n", | |
" 'vote_count': 5},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/dbtGinhWWKgQLQ0hjZHMFWxBJcJ.jpg',\n", | |
" 'genre_ids': [28, 878, 27, 53],\n", | |
" 'id': 1159518,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Black Noise',\n", | |
" 'overview': 'Members of an elite security team deployed to rescue a VIP on an exclusive island.The rescue mission becomes a desperate attempt to survive, escape the island and elude the sinister presence that seeks to harm them.',\n", | |
" 'popularity': 772.167,\n", | |
" 'poster_path': '/snKpXexv5dtWqEKEmXrJtp8QGQC.jpg',\n", | |
" 'release_date': '2023-11-03',\n", | |
" 'title': 'Black Noise',\n", | |
" 'video': False,\n", | |
" 'vote_average': 5.313,\n", | |
" 'vote_count': 16},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/uNTciMXpCQDg7gvgMsPCdnxo6Re.jpg',\n", | |
" 'genre_ids': [28, 53],\n", | |
" 'id': 1114738,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Boneyard',\n", | |
" 'overview': 'After Police Chief Carter discovers the remains of eleven women, FBI Special Agent Petrovick is recruited to profile the serial killer responsible for the infamous \"boneyard\" killings. As the police force, narcotics agency, and FBI lock horns, a tangled web of intrigue turns everyone into a suspect.',\n", | |
" 'popularity': 768.042,\n", | |
" 'poster_path': '/xkNK36hQv8SWiwiQoE7naRfP0zL.jpg',\n", | |
" 'release_date': '2024-07-05',\n", | |
" 'title': 'Boneyard',\n", | |
" 'video': False,\n", | |
" 'vote_average': 5.788,\n", | |
" 'vote_count': 40},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/adAJDB2Au3x5ve2YyWaEYy4EUw.jpg',\n", | |
" 'genre_ids': [18, 10749, 35],\n", | |
" 'id': 1191610,\n", | |
" 'original_language': 'es',\n", | |
" 'original_title': 'Goyo',\n", | |
" 'overview': 'A young autistic museum guide lives by a strict routine — until he falls in love with his coworker and must confront a whirlwind of new, intense emotions.',\n", | |
" 'popularity': 735.939,\n", | |
" 'poster_path': '/fCjC1RRbEJUpDjM55RNUMXQen0b.jpg',\n", | |
" 'release_date': '2024-06-27',\n", | |
" 'title': 'Goyo',\n", | |
" 'video': False,\n", | |
" 'vote_average': 6.788,\n", | |
" 'vote_count': 26},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/dvBCdCohwWbsP5qAaglOXagDMtk.jpg',\n", | |
" 'genre_ids': [878, 28, 35],\n", | |
" 'id': 533535,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Deadpool & Wolverine',\n", | |
" 'overview': 'A listless Wade Wilson toils away in civilian life with his days as the morally flexible mercenary, Deadpool, behind him. But when his homeworld faces an existential threat, Wade must reluctantly suit-up again with an even more reluctant Wolverine.',\n", | |
" 'popularity': 712.349,\n", | |
" 'poster_path': '/jbwYaoYWZwxtPP76AZnfYKQjCEB.jpg',\n", | |
" 'release_date': '2024-07-24',\n", | |
" 'title': 'Deadpool & Wolverine',\n", | |
" 'video': False,\n", | |
" 'vote_average': 0.0,\n", | |
" 'vote_count': 0},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/a4IWRYNMNMszIkRbEIiNsRg6cvt.jpg',\n", | |
" 'genre_ids': [10752, 28, 18],\n", | |
" 'id': 929590,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Civil War',\n", | |
" 'overview': 'In the near future, a group of war journalists attempt to survive while reporting the truth as the United States stands on the brink of civil war.',\n", | |
" 'popularity': 708.024,\n", | |
" 'poster_path': '/sh7Rg8Er3tFcN9BpKIPOMvALgZd.jpg',\n", | |
" 'release_date': '2024-04-10',\n", | |
" 'title': 'Civil War',\n", | |
" 'video': False,\n", | |
" 'vote_average': 6.988,\n", | |
" 'vote_count': 1907},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/iTWrsOVsUqcwYSxrpINNs3hG2nC.jpg',\n", | |
" 'genre_ids': [53, 27, 28, 9648],\n", | |
" 'id': 1001311,\n", | |
" 'original_language': 'fr',\n", | |
" 'original_title': 'Sous la Seine',\n", | |
" 'overview': 'In order to save Paris from an international bloodbath, a grieving scientist is forced to face her tragic past when a giant shark appears in the Seine.',\n", | |
" 'popularity': 706.026,\n", | |
" 'poster_path': '/qZPLK5ktRKa3CL4sKRZtj8UlPYc.jpg',\n", | |
" 'release_date': '2024-06-04',\n", | |
" 'title': 'Under Paris',\n", | |
" 'video': False,\n", | |
" 'vote_average': 6.093,\n", | |
" 'vote_count': 910},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/j29ekbcLpBvxnGk6LjdTc2EI5SA.jpg',\n", | |
" 'genre_ids': [16, 10751, 12, 18, 35],\n", | |
" 'id': 150540,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Inside Out',\n", | |
" 'overview': 'When 11-year-old Riley moves to a new city, her Emotions team up to help her through the transition. Joy, Fear, Anger, Disgust and Sadness work together, but when Joy and Sadness get lost, they must journey through unfamiliar places to get back home.',\n", | |
" 'popularity': 680.264,\n", | |
" 'poster_path': '/2H1TmgdfNtsKlU9jKdeNyYL5y8T.jpg',\n", | |
" 'release_date': '2015-06-17',\n", | |
" 'title': 'Inside Out',\n", | |
" 'video': False,\n", | |
" 'vote_average': 7.916,\n", | |
" 'vote_count': 21227},\n", | |
" {'adult': False,\n", | |
" 'backdrop_path': '/aATi2PtaOQCVAquCym6OU0Z4FjY.jpg',\n", | |
" 'genre_ids': [28, 80, 53],\n", | |
" 'id': 704673,\n", | |
" 'original_language': 'en',\n", | |
" 'original_title': 'Trigger Warning',\n", | |
" 'overview': \"A Special Forces commando uncovers a dangerous conspiracy when she returns to her hometown looking for answers into her beloved father's death.\",\n", | |
" 'popularity': 642.399,\n", | |
" 'poster_path': '/lJN24nn28s5afC1UnLPYRgYOp1K.jpg',\n", | |
" 'release_date': '2024-06-20',\n", | |
" 'title': 'Trigger Warning',\n", | |
" 'video': False,\n", | |
" 'vote_average': 5.9,\n", | |
" 'vote_count': 322}],\n", | |
" 'total_pages': 45146,\n", | |
" 'total_results': 902905}" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 6 | |
} | |
], | |
"source": [ | |
"popular_movies_data = get_popular_movie_data()\n", | |
"popular_movies_data" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "IWZC9BkJEVOm" | |
}, | |
"source": [ | |
"# 4.0 Converting JSON Data to a Pandas DataFrame \n", | |
"* Create a function to convert the JSON data from `popular_movies_data` to a Pandas DataFrame. \n", | |
"* Assign the dataframe to a variable called `popular_movies`. \n", | |
"\n", | |
"<b>Note:</b> The API call only provided the first page of data which contains only 20 records. You have to loop through all pages to get the full list. Our API code did not include a pagination or looping feature so it only gave us the 20 records on the first page." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "jl4lxAj-EVOn", | |
"outputId": "bf0ffef4-e76d-4258-8306-396e950c66e8", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 1000 | |
} | |
}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"Converting JSON data to Pandas Dataframe\n" | |
] | |
}, | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
" adult backdrop_path genre_ids id \\\n", | |
"0 False /xg27NrXi7VXCGUr7MG75UqLl6Vg.jpg [16, 10751, 12, 35] 1022789 \n", | |
"1 False /fDmci71SMkfZM8RnCuXJVDPaSdE.jpg [16, 10751, 35, 28] 519182 \n", | |
"2 False /Akv9GlCCMrzcDkVz4ad8MdLl9DK.jpg [16, 35, 10751, 12] 748783 \n", | |
"3 False /wNAhuOZ3Zf84jCIlrcI6JhgmY5q.jpg [28, 12, 878] 786892 \n", | |
"4 False /fqv8v6AycXKsivp1T5yKtLbGXce.jpg [878, 12, 28] 653346 \n", | |
"5 False /dn3gbDpXPSwC6saMJOHkCiFA9jn.jpg [14, 12, 10751, 35] 974262 \n", | |
"6 False /gRApXuxWmO2forYTuTmcz5RaNUV.jpg [28, 80, 53, 35] 573435 \n", | |
"7 False /rrwt0u1rW685u9bJ9ougg5HJEHC.jpg [28, 35, 80] 280180 \n", | |
"8 False /lA6KdSkCTxwzvqzPqxch997RabQ.jpg [28, 53] 560016 \n", | |
"9 False /8fNBsXpgMvqk75SPsZzTmIqSRxY.jpg [27, 53] 646683 \n", | |
"10 False /lLh39Th5plbrQgbQ4zyIULsd0Pp.jpg [878, 28, 12] 823464 \n", | |
"11 False /oSJV6nAfHzyE9v6oEAXmDjbko00.jpg [14, 12] 943344 \n", | |
"12 False /dbtGinhWWKgQLQ0hjZHMFWxBJcJ.jpg [28, 878, 27, 53] 1159518 \n", | |
"13 False /uNTciMXpCQDg7gvgMsPCdnxo6Re.jpg [28, 53] 1114738 \n", | |
"14 False /adAJDB2Au3x5ve2YyWaEYy4EUw.jpg [18, 10749, 35] 1191610 \n", | |
"15 False /dvBCdCohwWbsP5qAaglOXagDMtk.jpg [878, 28, 35] 533535 \n", | |
"16 False /a4IWRYNMNMszIkRbEIiNsRg6cvt.jpg [10752, 28, 18] 929590 \n", | |
"17 False /iTWrsOVsUqcwYSxrpINNs3hG2nC.jpg [53, 27, 28, 9648] 1001311 \n", | |
"18 False /j29ekbcLpBvxnGk6LjdTc2EI5SA.jpg [16, 10751, 12, 18, 35] 150540 \n", | |
"19 False /aATi2PtaOQCVAquCym6OU0Z4FjY.jpg [28, 80, 53] 704673 \n", | |
"\n", | |
" original_language original_title \\\n", | |
"0 en Inside Out 2 \n", | |
"1 en Despicable Me 4 \n", | |
"2 en The Garfield Movie \n", | |
"3 en Furiosa: A Mad Max Saga \n", | |
"4 en Kingdom of the Planet of the Apes \n", | |
"5 en Descendants: The Rise of Red \n", | |
"6 en Bad Boys: Ride or Die \n", | |
"7 en Beverly Hills Cop: Axel F \n", | |
"8 en Monkey Man \n", | |
"9 en The Exorcism \n", | |
"10 en Godzilla x Kong: The New Empire \n", | |
"11 zh 地底怪物 \n", | |
"12 en Black Noise \n", | |
"13 en Boneyard \n", | |
"14 es Goyo \n", | |
"15 en Deadpool & Wolverine \n", | |
"16 en Civil War \n", | |
"17 fr Sous la Seine \n", | |
"18 en Inside Out \n", | |
"19 en Trigger Warning \n", | |
"\n", | |
" overview popularity \\\n", | |
"0 Teenager Riley's mind headquarters is undergoi... 5389.964 \n", | |
"1 Gru and Lucy and their girls — Margo, Edith an... 4182.190 \n", | |
"2 Garfield, the world-famous, Monday-hating, las... 2209.679 \n", | |
"3 As the world fell, young Furiosa is snatched f... 1802.966 \n", | |
"4 Several generations following Caesar's reign, ... 1685.471 \n", | |
"5 After the Queen of Hearts incites a coup on Au... 1277.167 \n", | |
"6 After their late former Captain is framed, Low... 1263.839 \n", | |
"7 Forty years after his unforgettable first case... 1237.903 \n", | |
"8 Kid is an anonymous young man who ekes out a m... 1148.565 \n", | |
"9 A troubled actor begins to unravel while shoot... 1119.067 \n", | |
"10 Following their explosive showdown, Godzilla a... 998.116 \n", | |
"11 978.450 \n", | |
"12 Members of an elite security team deployed to ... 772.167 \n", | |
"13 After Police Chief Carter discovers the remain... 768.042 \n", | |
"14 A young autistic museum guide lives by a stric... 735.939 \n", | |
"15 A listless Wade Wilson toils away in civilian ... 712.349 \n", | |
"16 In the near future, a group of war journalists... 708.024 \n", | |
"17 In order to save Paris from an international b... 706.026 \n", | |
"18 When 11-year-old Riley moves to a new city, he... 680.264 \n", | |
"19 A Special Forces commando uncovers a dangerous... 642.399 \n", | |
"\n", | |
" poster_path release_date \\\n", | |
"0 /vpnVM9B6NMmQpWeZvzLvDESb2QY.jpg 2024-06-11 \n", | |
"1 /3w84hCFJATpiCO5g8hpdWVPBbmq.jpg 2024-06-20 \n", | |
"2 /p6AbOJvMQhBmffd0PIv0u8ghWeY.jpg 2024-04-30 \n", | |
"3 /iADOJ8Zymht2JPMoy3R7xceZprc.jpg 2024-05-22 \n", | |
"4 /gKkl37BQuKTanygYQG1pyYgLVgf.jpg 2024-05-08 \n", | |
"5 /dwxWNJ9oDLqNPbA0884h5J7mfqy.jpg 2024-07-11 \n", | |
"6 /nP6RliHjxsz4irTKsxe8FRhKZYl.jpg 2024-06-05 \n", | |
"7 /zszRKfzjM5jltiq8rk6rasKVpUv.jpg 2024-06-20 \n", | |
"8 /4lhR4L2vzzjl68P1zJyCH755Oz4.jpg 2024-04-03 \n", | |
"9 /ar2h87jlTfMlrDZefR3VFz1SfgH.jpg 2024-05-30 \n", | |
"10 /z1p34vh7dEOnLDmyCrlUVLuoDzd.jpg 2024-03-27 \n", | |
"11 /lWVwWRLqpS1OaNg7KT0ZecSW0PK.jpg 2023-04-27 \n", | |
"12 /snKpXexv5dtWqEKEmXrJtp8QGQC.jpg 2023-11-03 \n", | |
"13 /xkNK36hQv8SWiwiQoE7naRfP0zL.jpg 2024-07-05 \n", | |
"14 /fCjC1RRbEJUpDjM55RNUMXQen0b.jpg 2024-06-27 \n", | |
"15 /jbwYaoYWZwxtPP76AZnfYKQjCEB.jpg 2024-07-24 \n", | |
"16 /sh7Rg8Er3tFcN9BpKIPOMvALgZd.jpg 2024-04-10 \n", | |
"17 /qZPLK5ktRKa3CL4sKRZtj8UlPYc.jpg 2024-06-04 \n", | |
"18 /2H1TmgdfNtsKlU9jKdeNyYL5y8T.jpg 2015-06-17 \n", | |
"19 /lJN24nn28s5afC1UnLPYRgYOp1K.jpg 2024-06-20 \n", | |
"\n", | |
" title video vote_average vote_count \n", | |
"0 Inside Out 2 False 7.699 1868 \n", | |
"1 Despicable Me 4 False 7.500 301 \n", | |
"2 The Garfield Movie False 7.274 451 \n", | |
"3 Furiosa: A Mad Max Saga False 7.600 2170 \n", | |
"4 Kingdom of the Planet of the Apes False 7.131 1893 \n", | |
"5 Descendants: The Rise of Red False 7.261 132 \n", | |
"6 Bad Boys: Ride or Die False 7.110 568 \n", | |
"7 Beverly Hills Cop: Axel F False 6.900 591 \n", | |
"8 Monkey Man False 7.100 600 \n", | |
"9 The Exorcism False 4.300 67 \n", | |
"10 Godzilla x Kong: The New Empire False 7.202 3196 \n", | |
"11 Underground Monster False 3.800 5 \n", | |
"12 Black Noise False 5.313 16 \n", | |
"13 Boneyard False 5.788 40 \n", | |
"14 Goyo False 6.788 26 \n", | |
"15 Deadpool & Wolverine False 0.000 0 \n", | |
"16 Civil War False 6.988 1907 \n", | |
"17 Under Paris False 6.093 910 \n", | |
"18 Inside Out False 7.916 21227 \n", | |
"19 Trigger Warning False 5.900 322 " | |
], | |
"text/html": [ | |
"\n", | |
" <div id=\"df-7ffaf913-ef80-4fe2-82dd-70bfdbd08d6c\" class=\"colab-df-container\">\n", | |
" <div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>adult</th>\n", | |
" <th>backdrop_path</th>\n", | |
" <th>genre_ids</th>\n", | |
" <th>id</th>\n", | |
" <th>original_language</th>\n", | |
" <th>original_title</th>\n", | |
" <th>overview</th>\n", | |
" <th>popularity</th>\n", | |
" <th>poster_path</th>\n", | |
" <th>release_date</th>\n", | |
" <th>title</th>\n", | |
" <th>video</th>\n", | |
" <th>vote_average</th>\n", | |
" <th>vote_count</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>False</td>\n", | |
" <td>/xg27NrXi7VXCGUr7MG75UqLl6Vg.jpg</td>\n", | |
" <td>[16, 10751, 12, 35]</td>\n", | |
" <td>1022789</td>\n", | |
" <td>en</td>\n", | |
" <td>Inside Out 2</td>\n", | |
" <td>Teenager Riley's mind headquarters is undergoi...</td>\n", | |
" <td>5389.964</td>\n", | |
" <td>/vpnVM9B6NMmQpWeZvzLvDESb2QY.jpg</td>\n", | |
" <td>2024-06-11</td>\n", | |
" <td>Inside Out 2</td>\n", | |
" <td>False</td>\n", | |
" <td>7.699</td>\n", | |
" <td>1868</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>False</td>\n", | |
" <td>/fDmci71SMkfZM8RnCuXJVDPaSdE.jpg</td>\n", | |
" <td>[16, 10751, 35, 28]</td>\n", | |
" <td>519182</td>\n", | |
" <td>en</td>\n", | |
" <td>Despicable Me 4</td>\n", | |
" <td>Gru and Lucy and their girls — Margo, Edith an...</td>\n", | |
" <td>4182.190</td>\n", | |
" <td>/3w84hCFJATpiCO5g8hpdWVPBbmq.jpg</td>\n", | |
" <td>2024-06-20</td>\n", | |
" <td>Despicable Me 4</td>\n", | |
" <td>False</td>\n", | |
" <td>7.500</td>\n", | |
" <td>301</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>False</td>\n", | |
" <td>/Akv9GlCCMrzcDkVz4ad8MdLl9DK.jpg</td>\n", | |
" <td>[16, 35, 10751, 12]</td>\n", | |
" <td>748783</td>\n", | |
" <td>en</td>\n", | |
" <td>The Garfield Movie</td>\n", | |
" <td>Garfield, the world-famous, Monday-hating, las...</td>\n", | |
" <td>2209.679</td>\n", | |
" <td>/p6AbOJvMQhBmffd0PIv0u8ghWeY.jpg</td>\n", | |
" <td>2024-04-30</td>\n", | |
" <td>The Garfield Movie</td>\n", | |
" <td>False</td>\n", | |
" <td>7.274</td>\n", | |
" <td>451</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>False</td>\n", | |
" <td>/wNAhuOZ3Zf84jCIlrcI6JhgmY5q.jpg</td>\n", | |
" <td>[28, 12, 878]</td>\n", | |
" <td>786892</td>\n", | |
" <td>en</td>\n", | |
" <td>Furiosa: A Mad Max Saga</td>\n", | |
" <td>As the world fell, young Furiosa is snatched f...</td>\n", | |
" <td>1802.966</td>\n", | |
" <td>/iADOJ8Zymht2JPMoy3R7xceZprc.jpg</td>\n", | |
" <td>2024-05-22</td>\n", | |
" <td>Furiosa: A Mad Max Saga</td>\n", | |
" <td>False</td>\n", | |
" <td>7.600</td>\n", | |
" <td>2170</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>False</td>\n", | |
" <td>/fqv8v6AycXKsivp1T5yKtLbGXce.jpg</td>\n", | |
" <td>[878, 12, 28]</td>\n", | |
" <td>653346</td>\n", | |
" <td>en</td>\n", | |
" <td>Kingdom of the Planet of the Apes</td>\n", | |
" <td>Several generations following Caesar's reign, ...</td>\n", | |
" <td>1685.471</td>\n", | |
" <td>/gKkl37BQuKTanygYQG1pyYgLVgf.jpg</td>\n", | |
" <td>2024-05-08</td>\n", | |
" <td>Kingdom of the Planet of the Apes</td>\n", | |
" <td>False</td>\n", | |
" <td>7.131</td>\n", | |
" <td>1893</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>5</th>\n", | |
" <td>False</td>\n", | |
" <td>/dn3gbDpXPSwC6saMJOHkCiFA9jn.jpg</td>\n", | |
" <td>[14, 12, 10751, 35]</td>\n", | |
" <td>974262</td>\n", | |
" <td>en</td>\n", | |
" <td>Descendants: The Rise of Red</td>\n", | |
" <td>After the Queen of Hearts incites a coup on Au...</td>\n", | |
" <td>1277.167</td>\n", | |
" <td>/dwxWNJ9oDLqNPbA0884h5J7mfqy.jpg</td>\n", | |
" <td>2024-07-11</td>\n", | |
" <td>Descendants: The Rise of Red</td>\n", | |
" <td>False</td>\n", | |
" <td>7.261</td>\n", | |
" <td>132</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>6</th>\n", | |
" <td>False</td>\n", | |
" <td>/gRApXuxWmO2forYTuTmcz5RaNUV.jpg</td>\n", | |
" <td>[28, 80, 53, 35]</td>\n", | |
" <td>573435</td>\n", | |
" <td>en</td>\n", | |
" <td>Bad Boys: Ride or Die</td>\n", | |
" <td>After their late former Captain is framed, Low...</td>\n", | |
" <td>1263.839</td>\n", | |
" <td>/nP6RliHjxsz4irTKsxe8FRhKZYl.jpg</td>\n", | |
" <td>2024-06-05</td>\n", | |
" <td>Bad Boys: Ride or Die</td>\n", | |
" <td>False</td>\n", | |
" <td>7.110</td>\n", | |
" <td>568</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7</th>\n", | |
" <td>False</td>\n", | |
" <td>/rrwt0u1rW685u9bJ9ougg5HJEHC.jpg</td>\n", | |
" <td>[28, 35, 80]</td>\n", | |
" <td>280180</td>\n", | |
" <td>en</td>\n", | |
" <td>Beverly Hills Cop: Axel F</td>\n", | |
" <td>Forty years after his unforgettable first case...</td>\n", | |
" <td>1237.903</td>\n", | |
" <td>/zszRKfzjM5jltiq8rk6rasKVpUv.jpg</td>\n", | |
" <td>2024-06-20</td>\n", | |
" <td>Beverly Hills Cop: Axel F</td>\n", | |
" <td>False</td>\n", | |
" <td>6.900</td>\n", | |
" <td>591</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>8</th>\n", | |
" <td>False</td>\n", | |
" <td>/lA6KdSkCTxwzvqzPqxch997RabQ.jpg</td>\n", | |
" <td>[28, 53]</td>\n", | |
" <td>560016</td>\n", | |
" <td>en</td>\n", | |
" <td>Monkey Man</td>\n", | |
" <td>Kid is an anonymous young man who ekes out a m...</td>\n", | |
" <td>1148.565</td>\n", | |
" <td>/4lhR4L2vzzjl68P1zJyCH755Oz4.jpg</td>\n", | |
" <td>2024-04-03</td>\n", | |
" <td>Monkey Man</td>\n", | |
" <td>False</td>\n", | |
" <td>7.100</td>\n", | |
" <td>600</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>9</th>\n", | |
" <td>False</td>\n", | |
" <td>/8fNBsXpgMvqk75SPsZzTmIqSRxY.jpg</td>\n", | |
" <td>[27, 53]</td>\n", | |
" <td>646683</td>\n", | |
" <td>en</td>\n", | |
" <td>The Exorcism</td>\n", | |
" <td>A troubled actor begins to unravel while shoot...</td>\n", | |
" <td>1119.067</td>\n", | |
" <td>/ar2h87jlTfMlrDZefR3VFz1SfgH.jpg</td>\n", | |
" <td>2024-05-30</td>\n", | |
" <td>The Exorcism</td>\n", | |
" <td>False</td>\n", | |
" <td>4.300</td>\n", | |
" <td>67</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>10</th>\n", | |
" <td>False</td>\n", | |
" <td>/lLh39Th5plbrQgbQ4zyIULsd0Pp.jpg</td>\n", | |
" <td>[878, 28, 12]</td>\n", | |
" <td>823464</td>\n", | |
" <td>en</td>\n", | |
" <td>Godzilla x Kong: The New Empire</td>\n", | |
" <td>Following their explosive showdown, Godzilla a...</td>\n", | |
" <td>998.116</td>\n", | |
" <td>/z1p34vh7dEOnLDmyCrlUVLuoDzd.jpg</td>\n", | |
" <td>2024-03-27</td>\n", | |
" <td>Godzilla x Kong: The New Empire</td>\n", | |
" <td>False</td>\n", | |
" <td>7.202</td>\n", | |
" <td>3196</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>11</th>\n", | |
" <td>False</td>\n", | |
" <td>/oSJV6nAfHzyE9v6oEAXmDjbko00.jpg</td>\n", | |
" <td>[14, 12]</td>\n", | |
" <td>943344</td>\n", | |
" <td>zh</td>\n", | |
" <td>地底怪物</td>\n", | |
" <td></td>\n", | |
" <td>978.450</td>\n", | |
" <td>/lWVwWRLqpS1OaNg7KT0ZecSW0PK.jpg</td>\n", | |
" <td>2023-04-27</td>\n", | |
" <td>Underground Monster</td>\n", | |
" <td>False</td>\n", | |
" <td>3.800</td>\n", | |
" <td>5</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>12</th>\n", | |
" <td>False</td>\n", | |
" <td>/dbtGinhWWKgQLQ0hjZHMFWxBJcJ.jpg</td>\n", | |
" <td>[28, 878, 27, 53]</td>\n", | |
" <td>1159518</td>\n", | |
" <td>en</td>\n", | |
" <td>Black Noise</td>\n", | |
" <td>Members of an elite security team deployed to ...</td>\n", | |
" <td>772.167</td>\n", | |
" <td>/snKpXexv5dtWqEKEmXrJtp8QGQC.jpg</td>\n", | |
" <td>2023-11-03</td>\n", | |
" <td>Black Noise</td>\n", | |
" <td>False</td>\n", | |
" <td>5.313</td>\n", | |
" <td>16</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>13</th>\n", | |
" <td>False</td>\n", | |
" <td>/uNTciMXpCQDg7gvgMsPCdnxo6Re.jpg</td>\n", | |
" <td>[28, 53]</td>\n", | |
" <td>1114738</td>\n", | |
" <td>en</td>\n", | |
" <td>Boneyard</td>\n", | |
" <td>After Police Chief Carter discovers the remain...</td>\n", | |
" <td>768.042</td>\n", | |
" <td>/xkNK36hQv8SWiwiQoE7naRfP0zL.jpg</td>\n", | |
" <td>2024-07-05</td>\n", | |
" <td>Boneyard</td>\n", | |
" <td>False</td>\n", | |
" <td>5.788</td>\n", | |
" <td>40</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>14</th>\n", | |
" <td>False</td>\n", | |
" <td>/adAJDB2Au3x5ve2YyWaEYy4EUw.jpg</td>\n", | |
" <td>[18, 10749, 35]</td>\n", | |
" <td>1191610</td>\n", | |
" <td>es</td>\n", | |
" <td>Goyo</td>\n", | |
" <td>A young autistic museum guide lives by a stric...</td>\n", | |
" <td>735.939</td>\n", | |
" <td>/fCjC1RRbEJUpDjM55RNUMXQen0b.jpg</td>\n", | |
" <td>2024-06-27</td>\n", | |
" <td>Goyo</td>\n", | |
" <td>False</td>\n", | |
" <td>6.788</td>\n", | |
" <td>26</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>15</th>\n", | |
" <td>False</td>\n", | |
" <td>/dvBCdCohwWbsP5qAaglOXagDMtk.jpg</td>\n", | |
" <td>[878, 28, 35]</td>\n", | |
" <td>533535</td>\n", | |
" <td>en</td>\n", | |
" <td>Deadpool & Wolverine</td>\n", | |
" <td>A listless Wade Wilson toils away in civilian ...</td>\n", | |
" <td>712.349</td>\n", | |
" <td>/jbwYaoYWZwxtPP76AZnfYKQjCEB.jpg</td>\n", | |
" <td>2024-07-24</td>\n", | |
" <td>Deadpool & Wolverine</td>\n", | |
" <td>False</td>\n", | |
" <td>0.000</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>16</th>\n", | |
" <td>False</td>\n", | |
" <td>/a4IWRYNMNMszIkRbEIiNsRg6cvt.jpg</td>\n", | |
" <td>[10752, 28, 18]</td>\n", | |
" <td>929590</td>\n", | |
" <td>en</td>\n", | |
" <td>Civil War</td>\n", | |
" <td>In the near future, a group of war journalists...</td>\n", | |
" <td>708.024</td>\n", | |
" <td>/sh7Rg8Er3tFcN9BpKIPOMvALgZd.jpg</td>\n", | |
" <td>2024-04-10</td>\n", | |
" <td>Civil War</td>\n", | |
" <td>False</td>\n", | |
" <td>6.988</td>\n", | |
" <td>1907</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>17</th>\n", | |
" <td>False</td>\n", | |
" <td>/iTWrsOVsUqcwYSxrpINNs3hG2nC.jpg</td>\n", | |
" <td>[53, 27, 28, 9648]</td>\n", | |
" <td>1001311</td>\n", | |
" <td>fr</td>\n", | |
" <td>Sous la Seine</td>\n", | |
" <td>In order to save Paris from an international b...</td>\n", | |
" <td>706.026</td>\n", | |
" <td>/qZPLK5ktRKa3CL4sKRZtj8UlPYc.jpg</td>\n", | |
" <td>2024-06-04</td>\n", | |
" <td>Under Paris</td>\n", | |
" <td>False</td>\n", | |
" <td>6.093</td>\n", | |
" <td>910</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>18</th>\n", | |
" <td>False</td>\n", | |
" <td>/j29ekbcLpBvxnGk6LjdTc2EI5SA.jpg</td>\n", | |
" <td>[16, 10751, 12, 18, 35]</td>\n", | |
" <td>150540</td>\n", | |
" <td>en</td>\n", | |
" <td>Inside Out</td>\n", | |
" <td>When 11-year-old Riley moves to a new city, he...</td>\n", | |
" <td>680.264</td>\n", | |
" <td>/2H1TmgdfNtsKlU9jKdeNyYL5y8T.jpg</td>\n", | |
" <td>2015-06-17</td>\n", | |
" <td>Inside Out</td>\n", | |
" <td>False</td>\n", | |
" <td>7.916</td>\n", | |
" <td>21227</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>19</th>\n", | |
" <td>False</td>\n", | |
" <td>/aATi2PtaOQCVAquCym6OU0Z4FjY.jpg</td>\n", | |
" <td>[28, 80, 53]</td>\n", | |
" <td>704673</td>\n", | |
" <td>en</td>\n", | |
" <td>Trigger Warning</td>\n", | |
" <td>A Special Forces commando uncovers a dangerous...</td>\n", | |
" <td>642.399</td>\n", | |
" <td>/lJN24nn28s5afC1UnLPYRgYOp1K.jpg</td>\n", | |
" <td>2024-06-20</td>\n", | |
" <td>Trigger Warning</td>\n", | |
" <td>False</td>\n", | |
" <td>5.900</td>\n", | |
" <td>322</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>\n", | |
" <div class=\"colab-df-buttons\">\n", | |
"\n", | |
" <div class=\"colab-df-container\">\n", | |
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-7ffaf913-ef80-4fe2-82dd-70bfdbd08d6c')\"\n", | |
" title=\"Convert this dataframe to an interactive table.\"\n", | |
" style=\"display:none;\">\n", | |
"\n", | |
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n", | |
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n", | |
" </svg>\n", | |
" </button>\n", | |
"\n", | |
" <style>\n", | |
" .colab-df-container {\n", | |
" display:flex;\n", | |
" gap: 12px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert {\n", | |
" background-color: #E8F0FE;\n", | |
" border: none;\n", | |
" border-radius: 50%;\n", | |
" cursor: pointer;\n", | |
" display: none;\n", | |
" fill: #1967D2;\n", | |
" height: 32px;\n", | |
" padding: 0 0 0 0;\n", | |
" width: 32px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert:hover {\n", | |
" background-color: #E2EBFA;\n", | |
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n", | |
" fill: #174EA6;\n", | |
" }\n", | |
"\n", | |
" .colab-df-buttons div {\n", | |
" margin-bottom: 4px;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert {\n", | |
" background-color: #3B4455;\n", | |
" fill: #D2E3FC;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert:hover {\n", | |
" background-color: #434B5C;\n", | |
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n", | |
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n", | |
" fill: #FFFFFF;\n", | |
" }\n", | |
" </style>\n", | |
"\n", | |
" <script>\n", | |
" const buttonEl =\n", | |
" document.querySelector('#df-7ffaf913-ef80-4fe2-82dd-70bfdbd08d6c button.colab-df-convert');\n", | |
" buttonEl.style.display =\n", | |
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n", | |
"\n", | |
" async function convertToInteractive(key) {\n", | |
" const element = document.querySelector('#df-7ffaf913-ef80-4fe2-82dd-70bfdbd08d6c');\n", | |
" const dataTable =\n", | |
" await google.colab.kernel.invokeFunction('convertToInteractive',\n", | |
" [key], {});\n", | |
" if (!dataTable) return;\n", | |
"\n", | |
" const docLinkHtml = 'Like what you see? Visit the ' +\n", | |
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n", | |
" + ' to learn more about interactive tables.';\n", | |
" element.innerHTML = '';\n", | |
" dataTable['output_type'] = 'display_data';\n", | |
" await google.colab.output.renderOutput(dataTable, element);\n", | |
" const docLink = document.createElement('div');\n", | |
" docLink.innerHTML = docLinkHtml;\n", | |
" element.appendChild(docLink);\n", | |
" }\n", | |
" </script>\n", | |
" </div>\n", | |
"\n", | |
"\n", | |
"<div id=\"df-279d0d70-b32e-4ad1-a152-22c0edbebdfe\">\n", | |
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-279d0d70-b32e-4ad1-a152-22c0edbebdfe')\"\n", | |
" title=\"Suggest charts\"\n", | |
" style=\"display:none;\">\n", | |
"\n", | |
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n", | |
" width=\"24px\">\n", | |
" <g>\n", | |
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n", | |
" </g>\n", | |
"</svg>\n", | |
" </button>\n", | |
"\n", | |
"<style>\n", | |
" .colab-df-quickchart {\n", | |
" --bg-color: #E8F0FE;\n", | |
" --fill-color: #1967D2;\n", | |
" --hover-bg-color: #E2EBFA;\n", | |
" --hover-fill-color: #174EA6;\n", | |
" --disabled-fill-color: #AAA;\n", | |
" --disabled-bg-color: #DDD;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-quickchart {\n", | |
" --bg-color: #3B4455;\n", | |
" --fill-color: #D2E3FC;\n", | |
" --hover-bg-color: #434B5C;\n", | |
" --hover-fill-color: #FFFFFF;\n", | |
" --disabled-bg-color: #3B4455;\n", | |
" --disabled-fill-color: #666;\n", | |
" }\n", | |
"\n", | |
" .colab-df-quickchart {\n", | |
" background-color: var(--bg-color);\n", | |
" border: none;\n", | |
" border-radius: 50%;\n", | |
" cursor: pointer;\n", | |
" display: none;\n", | |
" fill: var(--fill-color);\n", | |
" height: 32px;\n", | |
" padding: 0;\n", | |
" width: 32px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-quickchart:hover {\n", | |
" background-color: var(--hover-bg-color);\n", | |
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n", | |
" fill: var(--button-hover-fill-color);\n", | |
" }\n", | |
"\n", | |
" .colab-df-quickchart-complete:disabled,\n", | |
" .colab-df-quickchart-complete:disabled:hover {\n", | |
" background-color: var(--disabled-bg-color);\n", | |
" fill: var(--disabled-fill-color);\n", | |
" box-shadow: none;\n", | |
" }\n", | |
"\n", | |
" .colab-df-spinner {\n", | |
" border: 2px solid var(--fill-color);\n", | |
" border-color: transparent;\n", | |
" border-bottom-color: var(--fill-color);\n", | |
" animation:\n", | |
" spin 1s steps(1) infinite;\n", | |
" }\n", | |
"\n", | |
" @keyframes spin {\n", | |
" 0% {\n", | |
" border-color: transparent;\n", | |
" border-bottom-color: var(--fill-color);\n", | |
" border-left-color: var(--fill-color);\n", | |
" }\n", | |
" 20% {\n", | |
" border-color: transparent;\n", | |
" border-left-color: var(--fill-color);\n", | |
" border-top-color: var(--fill-color);\n", | |
" }\n", | |
" 30% {\n", | |
" border-color: transparent;\n", | |
" border-left-color: var(--fill-color);\n", | |
" border-top-color: var(--fill-color);\n", | |
" border-right-color: var(--fill-color);\n", | |
" }\n", | |
" 40% {\n", | |
" border-color: transparent;\n", | |
" border-right-color: var(--fill-color);\n", | |
" border-top-color: var(--fill-color);\n", | |
" }\n", | |
" 60% {\n", | |
" border-color: transparent;\n", | |
" border-right-color: var(--fill-color);\n", | |
" }\n", | |
" 80% {\n", | |
" border-color: transparent;\n", | |
" border-right-color: var(--fill-color);\n", | |
" border-bottom-color: var(--fill-color);\n", | |
" }\n", | |
" 90% {\n", | |
" border-color: transparent;\n", | |
" border-bottom-color: var(--fill-color);\n", | |
" }\n", | |
" }\n", | |
"</style>\n", | |
"\n", | |
" <script>\n", | |
" async function quickchart(key) {\n", | |
" const quickchartButtonEl =\n", | |
" document.querySelector('#' + key + ' button');\n", | |
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n", | |
" quickchartButtonEl.classList.add('colab-df-spinner');\n", | |
" try {\n", | |
" const charts = await google.colab.kernel.invokeFunction(\n", | |
" 'suggestCharts', [key], {});\n", | |
" } catch (error) {\n", | |
" console.error('Error during call to suggestCharts:', error);\n", | |
" }\n", | |
" quickchartButtonEl.classList.remove('colab-df-spinner');\n", | |
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n", | |
" }\n", | |
" (() => {\n", | |
" let quickchartButtonEl =\n", | |
" document.querySelector('#df-279d0d70-b32e-4ad1-a152-22c0edbebdfe button');\n", | |
" quickchartButtonEl.style.display =\n", | |
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n", | |
" })();\n", | |
" </script>\n", | |
"</div>\n", | |
"\n", | |
" <div id=\"id_ee0854c9-e900-441d-b3d9-b3607052896e\">\n", | |
" <style>\n", | |
" .colab-df-generate {\n", | |
" background-color: #E8F0FE;\n", | |
" border: none;\n", | |
" border-radius: 50%;\n", | |
" cursor: pointer;\n", | |
" display: none;\n", | |
" fill: #1967D2;\n", | |
" height: 32px;\n", | |
" padding: 0 0 0 0;\n", | |
" width: 32px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-generate:hover {\n", | |
" background-color: #E2EBFA;\n", | |
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n", | |
" fill: #174EA6;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-generate {\n", | |
" background-color: #3B4455;\n", | |
" fill: #D2E3FC;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-generate:hover {\n", | |
" background-color: #434B5C;\n", | |
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n", | |
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n", | |
" fill: #FFFFFF;\n", | |
" }\n", | |
" </style>\n", | |
" <button class=\"colab-df-generate\" onclick=\"generateWithVariable('popular_movies')\"\n", | |
" title=\"Generate code using this dataframe.\"\n", | |
" style=\"display:none;\">\n", | |
"\n", | |
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n", | |
" width=\"24px\">\n", | |
" <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n", | |
" </svg>\n", | |
" </button>\n", | |
" <script>\n", | |
" (() => {\n", | |
" const buttonEl =\n", | |
" document.querySelector('#id_ee0854c9-e900-441d-b3d9-b3607052896e button.colab-df-generate');\n", | |
" buttonEl.style.display =\n", | |
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n", | |
"\n", | |
" buttonEl.onclick = () => {\n", | |
" google.colab.notebook.generateWithVariable('popular_movies');\n", | |
" }\n", | |
" })();\n", | |
" </script>\n", | |
" </div>\n", | |
"\n", | |
" </div>\n", | |
" </div>\n" | |
], | |
"application/vnd.google.colaboratory.intrinsic+json": { | |
"type": "dataframe", | |
"variable_name": "popular_movies", | |
"summary": "{\n \"name\": \"popular_movies\",\n \"rows\": 20,\n \"fields\": [\n {\n \"column\": \"adult\",\n \"properties\": {\n \"dtype\": \"boolean\",\n \"num_unique_values\": 1,\n \"samples\": [\n false\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"backdrop_path\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 20,\n \"samples\": [\n \"/xg27NrXi7VXCGUr7MG75UqLl6Vg.jpg\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"genre_ids\",\n \"properties\": {\n \"dtype\": \"object\",\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"id\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 283263,\n \"min\": 150540,\n \"max\": 1191610,\n \"num_unique_values\": 20,\n \"samples\": [\n 1022789\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"original_language\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 4,\n \"samples\": [\n \"zh\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"original_title\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 20,\n \"samples\": [\n \"Inside Out 2\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"overview\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 20,\n \"samples\": [\n \"Teenager Riley's mind headquarters is undergoing a sudden demolition to make room for something entirely unexpected: new Emotions! Joy, Sadness, Anger, Fear and Disgust, who\\u2019ve long been running a successful operation by all accounts, aren\\u2019t sure how to feel when Anxiety shows up. And it looks like she\\u2019s not alone.\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"popularity\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1231.3670315166958,\n \"min\": 642.399,\n \"max\": 5389.964,\n \"num_unique_values\": 20,\n \"samples\": [\n 5389.964\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"poster_path\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 20,\n \"samples\": [\n \"/vpnVM9B6NMmQpWeZvzLvDESb2QY.jpg\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"release_date\",\n \"properties\": {\n \"dtype\": \"object\",\n \"num_unique_values\": 18,\n \"samples\": [\n \"2024-06-11\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"title\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 20,\n \"samples\": [\n \"Inside Out 2\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"video\",\n \"properties\": {\n \"dtype\": \"boolean\",\n \"num_unique_values\": 1,\n \"samples\": [\n false\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"vote_average\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.8469903050211458,\n \"min\": 0.0,\n \"max\": 7.916,\n \"num_unique_values\": 20,\n \"samples\": [\n 7.699\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"vote_count\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 4660,\n \"min\": 0,\n \"max\": 21227,\n \"num_unique_values\": 20,\n \"samples\": [\n 1868\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" | |
} | |
}, | |
"metadata": {}, | |
"execution_count": 7 | |
} | |
], | |
"source": [ | |
"def convertJsonToDataFrame():\n", | |
" print('Converting JSON data to Pandas Dataframe')\n", | |
" popular_movies_df = pd.json_normalize(popular_movies_data, 'results')\n", | |
" return popular_movies_df\n", | |
"\n", | |
"popular_movies = convertJsonToDataFrame()\n", | |
"popular_movies" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "uDy0kCNWEVOo" | |
}, | |
"source": [ | |
"# 5.0 Pagination - Looping APIs with a Specified Range of Pages (for loop) \n", | |
"* Create a function that pulls data from the popular movies endpoint with filters for English movies only from 2024. \n", | |
"* Include a looping feature to loop through each page within the specified range and automatically stops when the last record is retrieved. \n", | |
"* Include a feature that calculates the total number pages that the API call retrieved data from and the total number of records that were retrieved.\n", | |
"* Include try/exception blocks to handle errors that could arise.\n", | |
"\n", | |
"<b>NOTE:</b> This function uses a range of pages for the loop. This is useful when you want to pull data from a specified range of pages." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "eGkvUSjOEVOo", | |
"outputId": "c8ee731b-5227-4da4-9be6-43c6caa85722", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
} | |
}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"Response Code for page 1: 200\n", | |
"Rows of data retrieved: 15 \n", | |
"\n", | |
"Response Code for page 2: 200\n", | |
"Rows of data retrieved: 25 \n", | |
"\n", | |
"Response Code for page 3: 200\n", | |
"Rows of data retrieved: 31 \n", | |
"\n", | |
"Response Code for page 4: 200\n", | |
"Rows of data retrieved: 41 \n", | |
"\n", | |
"Response Code for page 5: 200\n", | |
"Rows of data retrieved: 47 \n", | |
"\n", | |
"Response Code for page 6: 200\n", | |
"Rows of data retrieved: 51 \n", | |
"\n", | |
"Response Code for page 7: 200\n", | |
"Rows of data retrieved: 56 \n", | |
"\n", | |
"Response Code for page 8: 200\n", | |
"Rows of data retrieved: 62 \n", | |
"\n", | |
"Response Code for page 9: 200\n", | |
"Rows of data retrieved: 64 \n", | |
"\n", | |
"Response Code for page 10: 200\n", | |
"Rows of data retrieved: 67 \n", | |
"\n", | |
"Response Code for page 11: 200\n", | |
"Rows of data retrieved: 72 \n", | |
"\n", | |
"Response Code for page 12: 200\n", | |
"Rows of data retrieved: 75 \n", | |
"\n", | |
"Response Code for page 13: 200\n", | |
"Rows of data retrieved: 77 \n", | |
"\n", | |
"Response Code for page 14: 200\n", | |
"Rows of data retrieved: 78 \n", | |
"\n", | |
"Response Code for page 15: 200\n", | |
"Rows of data retrieved: 80 \n", | |
"\n", | |
"Response Code for page 16: 200\n", | |
"Rows of data retrieved: 83 \n", | |
"\n", | |
"Response Code for page 17: 200\n", | |
"Rows of data retrieved: 86 \n", | |
"\n", | |
"Response Code for page 18: 200\n", | |
"Rows of data retrieved: 87 \n", | |
"\n", | |
"Response Code for page 19: 200\n", | |
"Rows of data retrieved: 89 \n", | |
"\n", | |
"Response Code for page 20: 200\n", | |
"Rows of data retrieved: 92 \n", | |
"\n", | |
"Response Code for page 21: 200\n", | |
"Rows of data retrieved: 93 \n", | |
"\n", | |
"Response Code for page 22: 200\n", | |
"Rows of data retrieved: 94 \n", | |
"\n", | |
"Response Code for page 23: 200\n", | |
"Rows of data retrieved: 96 \n", | |
"\n", | |
"Response Code for page 24: 200\n", | |
"Rows of data retrieved: 97 \n", | |
"\n", | |
"Response Code for page 25: 200\n", | |
"Rows of data retrieved: 100 \n", | |
"\n", | |
"Response Code for page 26: 200\n", | |
"Rows of data retrieved: 101 \n", | |
"\n", | |
"Response Code for page 27: 200\n", | |
"Rows of data retrieved: 102 \n", | |
"\n", | |
"Response Code for page 28: 200\n", | |
"Rows of data retrieved: 105 \n", | |
"\n", | |
"Response Code for page 29: 200\n", | |
"Rows of data retrieved: 107 \n", | |
"\n", | |
"Response Code for page 30: 200\n", | |
"Rows of data retrieved: 107 \n", | |
"\n", | |
"Response Code for page 31: 200\n", | |
"Rows of data retrieved: 108 \n", | |
"\n", | |
"Response Code for page 32: 200\n", | |
"Rows of data retrieved: 108 \n", | |
"\n", | |
"Response Code for page 33: 200\n", | |
"Rows of data retrieved: 109 \n", | |
"\n", | |
"Response Code for page 34: 200\n", | |
"Rows of data retrieved: 112 \n", | |
"\n", | |
"Response Code for page 35: 200\n", | |
"Rows of data retrieved: 114 \n", | |
"\n", | |
"Response Code for page 36: 200\n", | |
"Rows of data retrieved: 115 \n", | |
"\n", | |
"Response Code for page 37: 200\n", | |
"Rows of data retrieved: 115 \n", | |
"\n", | |
"Response Code for page 38: 200\n", | |
"Rows of data retrieved: 117 \n", | |
"\n", | |
"Response Code for page 39: 200\n", | |
"Rows of data retrieved: 121 \n", | |
"\n", | |
"Response Code for page 40: 200\n", | |
"Rows of data retrieved: 122 \n", | |
"\n", | |
"Response Code for page 41: 200\n", | |
"Rows of data retrieved: 122 \n", | |
"\n", | |
"Response Code for page 42: 200\n", | |
"Rows of data retrieved: 123 \n", | |
"\n", | |
"Response Code for page 43: 200\n", | |
"Rows of data retrieved: 125 \n", | |
"\n", | |
"Response Code for page 44: 200\n", | |
"Rows of data retrieved: 126 \n", | |
"\n", | |
"Response Code for page 45: 200\n", | |
"Rows of data retrieved: 128 \n", | |
"\n", | |
"Response Code for page 46: 200\n", | |
"Rows of data retrieved: 129 \n", | |
"\n", | |
"Response Code for page 47: 200\n", | |
"Rows of data retrieved: 130 \n", | |
"\n", | |
"Response Code for page 48: 200\n", | |
"Rows of data retrieved: 130 \n", | |
"\n", | |
"Response Code for page 49: 200\n", | |
"Rows of data retrieved: 130 \n", | |
"\n", | |
"Response Code for page 50: 200\n", | |
"Rows of data retrieved: 131 \n", | |
"\n", | |
"Response Code for page 51: 200\n", | |
"Rows of data retrieved: 131 \n", | |
"\n", | |
"Response Code for page 52: 200\n", | |
"Rows of data retrieved: 133 \n", | |
"\n", | |
"Response Code for page 53: 200\n", | |
"Rows of data retrieved: 134 \n", | |
"\n", | |
"Response Code for page 54: 200\n", | |
"Rows of data retrieved: 134 \n", | |
"\n", | |
"Response Code for page 55: 200\n", | |
"Rows of data retrieved: 135 \n", | |
"\n", | |
"Response Code for page 56: 200\n", | |
"Rows of data retrieved: 136 \n", | |
"\n", | |
"Response Code for page 57: 200\n", | |
"Rows of data retrieved: 136 \n", | |
"\n", | |
"Response Code for page 58: 200\n", | |
"Rows of data retrieved: 138 \n", | |
"\n", | |
"Response Code for page 59: 200\n", | |
"Rows of data retrieved: 139 \n", | |
"\n", | |
"Response Code for page 60: 200\n", | |
"Rows of data retrieved: 139 \n", | |
"\n", | |
"Response Code for page 61: 200\n", | |
"Rows of data retrieved: 140 \n", | |
"\n", | |
"Response Code for page 62: 200\n", | |
"Rows of data retrieved: 140 \n", | |
"\n", | |
"Response Code for page 63: 200\n", | |
"Rows of data retrieved: 141 \n", | |
"\n", | |
"Response Code for page 64: 200\n", | |
"Rows of data retrieved: 142 \n", | |
"\n", | |
"Response Code for page 65: 200\n", | |
"Rows of data retrieved: 143 \n", | |
"\n", | |
"Response Code for page 66: 200\n", | |
"Rows of data retrieved: 143 \n", | |
"\n", | |
"Response Code for page 67: 200\n", | |
"Rows of data retrieved: 144 \n", | |
"\n", | |
"Response Code for page 68: 200\n", | |
"Rows of data retrieved: 144 \n", | |
"\n", | |
"Response Code for page 69: 200\n", | |
"Rows of data retrieved: 144 \n", | |
"\n", | |
"Response Code for page 70: 200\n", | |
"Rows of data retrieved: 144 \n", | |
"\n", | |
"Response Code for page 71: 200\n", | |
"Rows of data retrieved: 144 \n", | |
"\n", | |
"Response Code for page 72: 200\n", | |
"Rows of data retrieved: 144 \n", | |
"\n", | |
"Response Code for page 73: 200\n", | |
"Rows of data retrieved: 144 \n", | |
"\n", | |
"Response Code for page 74: 200\n", | |
"Rows of data retrieved: 144 \n", | |
"\n", | |
"Response Code for page 75: 200\n", | |
"Rows of data retrieved: 145 \n", | |
"\n", | |
"Response Code for page 76: 200\n", | |
"Rows of data retrieved: 145 \n", | |
"\n", | |
"Response Code for page 77: 200\n", | |
"Rows of data retrieved: 145 \n", | |
"\n", | |
"Response Code for page 78: 200\n", | |
"Rows of data retrieved: 145 \n", | |
"\n", | |
"Response Code for page 79: 200\n", | |
"Rows of data retrieved: 146 \n", | |
"\n", | |
"Response Code for page 80: 200\n", | |
"Rows of data retrieved: 146 \n", | |
"\n", | |
"Response Code for page 81: 200\n", | |
"Rows of data retrieved: 146 \n", | |
"\n", | |
"Response Code for page 82: 200\n", | |
"Rows of data retrieved: 147 \n", | |
"\n", | |
"Response Code for page 83: 200\n", | |
"Rows of data retrieved: 149 \n", | |
"\n", | |
"Response Code for page 84: 200\n", | |
"Rows of data retrieved: 149 \n", | |
"\n", | |
"Response Code for page 85: 200\n", | |
"Rows of data retrieved: 150 \n", | |
"\n", | |
"Response Code for page 86: 200\n", | |
"Rows of data retrieved: 151 \n", | |
"\n", | |
"Response Code for page 87: 200\n", | |
"Rows of data retrieved: 151 \n", | |
"\n", | |
"Response Code for page 88: 200\n", | |
"Rows of data retrieved: 152 \n", | |
"\n", | |
"Response Code for page 89: 200\n", | |
"Rows of data retrieved: 152 \n", | |
"\n", | |
"Response Code for page 90: 200\n", | |
"Rows of data retrieved: 154 \n", | |
"\n", | |
"Response Code for page 91: 200\n", | |
"Rows of data retrieved: 154 \n", | |
"\n", | |
"Response Code for page 92: 200\n", | |
"Rows of data retrieved: 154 \n", | |
"\n", | |
"Response Code for page 93: 200\n", | |
"Rows of data retrieved: 155 \n", | |
"\n", | |
"Response Code for page 94: 200\n", | |
"Rows of data retrieved: 156 \n", | |
"\n", | |
"Response Code for page 95: 200\n", | |
"Rows of data retrieved: 156 \n", | |
"\n", | |
"Response Code for page 96: 200\n", | |
"Rows of data retrieved: 158 \n", | |
"\n", | |
"Response Code for page 97: 200\n", | |
"Rows of data retrieved: 158 \n", | |
"\n", | |
"Response Code for page 98: 200\n", | |
"Rows of data retrieved: 158 \n", | |
"\n", | |
"Response Code for page 99: 200\n", | |
"Rows of data retrieved: 158 \n", | |
"\n", | |
"Response Code for page 100: 200\n", | |
"Rows of data retrieved: 160 \n", | |
"\n", | |
"Response Code for page 101: 200\n", | |
"Rows of data retrieved: 160 \n", | |
"\n", | |
"Response Code for page 102: 200\n", | |
"Rows of data retrieved: 160 \n", | |
"\n", | |
"Response Code for page 103: 200\n", | |
"Rows of data retrieved: 160 \n", | |
"\n", | |
"Response Code for page 104: 200\n", | |
"Rows of data retrieved: 162 \n", | |
"\n", | |
"Response Code for page 105: 200\n", | |
"Rows of data retrieved: 164 \n", | |
"\n", | |
"Response Code for page 106: 200\n", | |
"Rows of data retrieved: 165 \n", | |
"\n", | |
"Response Code for page 107: 200\n", | |
"Rows of data retrieved: 165 \n", | |
"\n", | |
"Response Code for page 108: 200\n", | |
"Rows of data retrieved: 165 \n", | |
"\n", | |
"Response Code for page 109: 200\n", | |
"Rows of data retrieved: 165 \n", | |
"\n", | |
"Response Code for page 110: 200\n", | |
"Rows of data retrieved: 167 \n", | |
"\n", | |
"Response Code for page 111: 200\n", | |
"Rows of data retrieved: 168 \n", | |
"\n", | |
"Response Code for page 112: 200\n", | |
"Rows of data retrieved: 169 \n", | |
"\n", | |
"Response Code for page 113: 200\n", | |
"Rows of data retrieved: 169 \n", | |
"\n", | |
"Response Code for page 114: 200\n", | |
"Rows of data retrieved: 169 \n", | |
"\n", | |
"Response Code for page 115: 200\n", | |
"Rows of data retrieved: 169 \n", | |
"\n", | |
"Response Code for page 116: 200\n", | |
"Rows of data retrieved: 169 \n", | |
"\n", | |
"Response Code for page 117: 200\n", | |
"Rows of data retrieved: 169 \n", | |
"\n", | |
"Response Code for page 118: 200\n", | |
"Rows of data retrieved: 169 \n", | |
"\n", | |
"Response Code for page 119: 200\n", | |
"Rows of data retrieved: 169 \n", | |
"\n", | |
"Response Code for page 120: 200\n", | |
"Rows of data retrieved: 171 \n", | |
"\n", | |
"Response Code for page 121: 200\n", | |
"Rows of data retrieved: 171 \n", | |
"\n", | |
"Response Code for page 122: 200\n", | |
"Rows of data retrieved: 171 \n", | |
"\n", | |
"Response Code for page 123: 200\n", | |
"Rows of data retrieved: 171 \n", | |
"\n", | |
"Response Code for page 124: 200\n", | |
"Rows of data retrieved: 171 \n", | |
"\n", | |
"Response Code for page 125: 200\n", | |
"Rows of data retrieved: 172 \n", | |
"\n", | |
"Response Code for page 126: 200\n", | |
"Rows of data retrieved: 172 \n", | |
"\n", | |
"Response Code for page 127: 200\n", | |
"Rows of data retrieved: 172 \n", | |
"\n", | |
"Response Code for page 128: 200\n", | |
"Rows of data retrieved: 172 \n", | |
"\n", | |
"Response Code for page 129: 200\n", | |
"Rows of data retrieved: 172 \n", | |
"\n", | |
"Response Code for page 130: 200\n", | |
"Rows of data retrieved: 172 \n", | |
"\n", | |
"Response Code for page 131: 200\n", | |
"Rows of data retrieved: 173 \n", | |
"\n", | |
"Response Code for page 132: 200\n", | |
"Rows of data retrieved: 174 \n", | |
"\n", | |
"Response Code for page 133: 200\n", | |
"Rows of data retrieved: 175 \n", | |
"\n", | |
"Response Code for page 134: 200\n", | |
"Rows of data retrieved: 175 \n", | |
"\n", | |
"Response Code for page 135: 200\n", | |
"Rows of data retrieved: 175 \n", | |
"\n", | |
"Response Code for page 136: 200\n", | |
"Rows of data retrieved: 176 \n", | |
"\n", | |
"Response Code for page 137: 200\n", | |
"Rows of data retrieved: 176 \n", | |
"\n", | |
"Response Code for page 138: 200\n", | |
"Rows of data retrieved: 176 \n", | |
"\n", | |
"Response Code for page 139: 200\n", | |
"Rows of data retrieved: 176 \n", | |
"\n", | |
"Response Code for page 140: 200\n", | |
"Rows of data retrieved: 177 \n", | |
"\n", | |
"Response Code for page 141: 200\n", | |
"Rows of data retrieved: 177 \n", | |
"\n", | |
"Response Code for page 142: 200\n", | |
"Rows of data retrieved: 178 \n", | |
"\n", | |
"Response Code for page 143: 200\n", | |
"Rows of data retrieved: 178 \n", | |
"\n", | |
"Response Code for page 144: 200\n", | |
"Rows of data retrieved: 178 \n", | |
"\n", | |
"Response Code for page 145: 200\n", | |
"Rows of data retrieved: 178 \n", | |
"\n", | |
"Response Code for page 146: 200\n", | |
"Rows of data retrieved: 178 \n", | |
"\n", | |
"Response Code for page 147: 200\n", | |
"Rows of data retrieved: 178 \n", | |
"\n", | |
"Response Code for page 148: 200\n", | |
"Rows of data retrieved: 179 \n", | |
"\n", | |
"Response Code for page 149: 200\n", | |
"Rows of data retrieved: 179 \n", | |
"\n", | |
"Response Code for page 150: 200\n", | |
"Rows of data retrieved: 180 \n", | |
"\n", | |
"Response Code for page 151: 200\n", | |
"Rows of data retrieved: 180 \n", | |
"\n", | |
"Response Code for page 152: 200\n", | |
"Rows of data retrieved: 180 \n", | |
"\n", | |
"Response Code for page 153: 200\n", | |
"Rows of data retrieved: 180 \n", | |
"\n", | |
"Response Code for page 154: 200\n", | |
"Rows of data retrieved: 180 \n", | |
"\n", | |
"Response Code for page 155: 200\n", | |
"Rows of data retrieved: 180 \n", | |
"\n", | |
"Response Code for page 156: 200\n", | |
"Rows of data retrieved: 181 \n", | |
"\n", | |
"Response Code for page 157: 200\n", | |
"Rows of data retrieved: 181 \n", | |
"\n", | |
"Response Code for page 158: 200\n", | |
"Rows of data retrieved: 181 \n", | |
"\n", | |
"Response Code for page 159: 200\n", | |
"Rows of data retrieved: 181 \n", | |
"\n", | |
"Response Code for page 160: 200\n", | |
"Rows of data retrieved: 181 \n", | |
"\n", | |
"Response Code for page 161: 200\n", | |
"Rows of data retrieved: 182 \n", | |
"\n", | |
"Response Code for page 162: 200\n", | |
"Rows of data retrieved: 182 \n", | |
"\n", | |
"Response Code for page 163: 200\n", | |
"Rows of data retrieved: 183 \n", | |
"\n", | |
"Response Code for page 164: 200\n", | |
"Rows of data retrieved: 184 \n", | |
"\n", | |
"Response Code for page 165: 200\n", | |
"Rows of data retrieved: 185 \n", | |
"\n", | |
"Response Code for page 166: 200\n", | |
"Rows of data retrieved: 186 \n", | |
"\n", | |
"Response Code for page 167: 200\n", | |
"Rows of data retrieved: 186 \n", | |
"\n", | |
"Response Code for page 168: 200\n", | |
"Rows of data retrieved: 187 \n", | |
"\n", | |
"Response Code for page 169: 200\n", | |
"Rows of data retrieved: 187 \n", | |
"\n", | |
"Response Code for page 170: 200\n", | |
"Rows of data retrieved: 189 \n", | |
"\n", | |
"Response Code for page 171: 200\n", | |
"Rows of data retrieved: 189 \n", | |
"\n", | |
"Response Code for page 172: 200\n", | |
"Rows of data retrieved: 189 \n", | |
"\n", | |
"Response Code for page 173: 200\n", | |
"Rows of data retrieved: 189 \n", | |
"\n", | |
"Response Code for page 174: 200\n", | |
"Rows of data retrieved: 190 \n", | |
"\n", | |
"Response Code for page 175: 200\n", | |
"Rows of data retrieved: 190 \n", | |
"\n", | |
"Response Code for page 176: 200\n", | |
"Rows of data retrieved: 190 \n", | |
"\n", | |
"Response Code for page 177: 200\n", | |
"Rows of data retrieved: 190 \n", | |
"\n", | |
"Response Code for page 178: 200\n", | |
"Rows of data retrieved: 190 \n", | |
"\n", | |
"Response Code for page 179: 200\n", | |
"Rows of data retrieved: 190 \n", | |
"\n", | |
"Response Code for page 180: 200\n", | |
"Rows of data retrieved: 190 \n", | |
"\n", | |
"Response Code for page 181: 200\n", | |
"Rows of data retrieved: 191 \n", | |
"\n", | |
"Response Code for page 182: 200\n", | |
"Rows of data retrieved: 192 \n", | |
"\n", | |
"Response Code for page 183: 200\n", | |
"Rows of data retrieved: 192 \n", | |
"\n", | |
"Response Code for page 184: 200\n", | |
"Rows of data retrieved: 194 \n", | |
"\n", | |
"Response Code for page 185: 200\n", | |
"Rows of data retrieved: 194 \n", | |
"\n", | |
"Response Code for page 186: 200\n", | |
"Rows of data retrieved: 195 \n", | |
"\n", | |
"Response Code for page 187: 200\n", | |
"Rows of data retrieved: 195 \n", | |
"\n", | |
"Response Code for page 188: 200\n", | |
"Rows of data retrieved: 195 \n", | |
"\n", | |
"Response Code for page 189: 200\n", | |
"Rows of data retrieved: 195 \n", | |
"\n", | |
"Response Code for page 190: 200\n", | |
"Rows of data retrieved: 195 \n", | |
"\n", | |
"Response Code for page 191: 200\n", | |
"Rows of data retrieved: 195 \n", | |
"\n", | |
"Response Code for page 192: 200\n", | |
"Rows of data retrieved: 196 \n", | |
"\n", | |
"Response Code for page 193: 200\n", | |
"Rows of data retrieved: 196 \n", | |
"\n", | |
"Response Code for page 194: 200\n", | |
"Rows of data retrieved: 196 \n", | |
"\n", | |
"Response Code for page 195: 200\n", | |
"Rows of data retrieved: 196 \n", | |
"\n", | |
"Response Code for page 196: 200\n", | |
"Rows of data retrieved: 196 \n", | |
"\n", | |
"Response Code for page 197: 200\n", | |
"Rows of data retrieved: 197 \n", | |
"\n", | |
"Response Code for page 198: 200\n", | |
"Rows of data retrieved: 197 \n", | |
"\n", | |
"Response Code for page 199: 200\n", | |
"Rows of data retrieved: 198 \n", | |
"\n", | |
"Response Code for page 200: 200\n", | |
"Rows of data retrieved: 198 \n", | |
"\n", | |
"Response Code for page 201: 200\n", | |
"Rows of data retrieved: 198 \n", | |
"\n", | |
"Response Code for page 202: 200\n", | |
"Rows of data retrieved: 198 \n", | |
"\n", | |
"Response Code for page 203: 200\n", | |
"Rows of data retrieved: 198 \n", | |
"\n", | |
"Response Code for page 204: 200\n", | |
"Rows of data retrieved: 198 \n", | |
"\n", | |
"Response Code for page 205: 200\n", | |
"Rows of data retrieved: 198 \n", | |
"\n", | |
"Response Code for page 206: 200\n", | |
"Rows of data retrieved: 198 \n", | |
"\n", | |
"Response Code for page 207: 200\n", | |
"Rows of data retrieved: 199 \n", | |
"\n", | |
"Response Code for page 208: 200\n", | |
"Rows of data retrieved: 200 \n", | |
"\n", | |
"Response Code for page 209: 200\n", | |
"Rows of data retrieved: 200 \n", | |
"\n", | |
"Response Code for page 210: 200\n", | |
"Rows of data retrieved: 200 \n", | |
"\n", | |
"Response Code for page 211: 200\n", | |
"Rows of data retrieved: 201 \n", | |
"\n", | |
"Response Code for page 212: 200\n", | |
"Rows of data retrieved: 201 \n", | |
"\n", | |
"Response Code for page 213: 200\n", | |
"Rows of data retrieved: 202 \n", | |
"\n", | |
"Response Code for page 214: 200\n", | |
"Rows of data retrieved: 203 \n", | |
"\n", | |
"Response Code for page 215: 200\n", | |
"Rows of data retrieved: 204 \n", | |
"\n", | |
"Response Code for page 216: 200\n", | |
"Rows of data retrieved: 205 \n", | |
"\n", | |
"Response Code for page 217: 200\n", | |
"Rows of data retrieved: 205 \n", | |
"\n", | |
"Response Code for page 218: 200\n", | |
"Rows of data retrieved: 205 \n", | |
"\n", | |
"Response Code for page 219: 200\n", | |
"Rows of data retrieved: 205 \n", | |
"\n", | |
"Response Code for page 220: 200\n", | |
"Rows of data retrieved: 205 \n", | |
"\n", | |
"Response Code for page 221: 200\n", | |
"Rows of data retrieved: 205 \n", | |
"\n", | |
"Response Code for page 222: 200\n", | |
"Rows of data retrieved: 205 \n", | |
"\n", | |
"Response Code for page 223: 200\n", | |
"Rows of data retrieved: 205 \n", | |
"\n", | |
"Response Code for page 224: 200\n", | |
"Rows of data retrieved: 206 \n", | |
"\n", | |
"Response Code for page 225: 200\n", | |
"Rows of data retrieved: 207 \n", | |
"\n", | |
"Response Code for page 226: 200\n", | |
"Rows of data retrieved: 208 \n", | |
"\n", | |
"Response Code for page 227: 200\n", | |
"Rows of data retrieved: 208 \n", | |
"\n", | |
"Response Code for page 228: 200\n", | |
"Rows of data retrieved: 208 \n", | |
"\n", | |
"Response Code for page 229: 200\n", | |
"Rows of data retrieved: 208 \n", | |
"\n", | |
"Response Code for page 230: 200\n", | |
"Rows of data retrieved: 208 \n", | |
"\n", | |
"Response Code for page 231: 200\n", | |
"Rows of data retrieved: 208 \n", | |
"\n", | |
"Response Code for page 232: 200\n", | |
"Rows of data retrieved: 209 \n", | |
"\n", | |
"Response Code for page 233: 200\n", | |
"Rows of data retrieved: 210 \n", | |
"\n", | |
"Response Code for page 234: 200\n", | |
"Rows of data retrieved: 210 \n", | |
"\n", | |
"Response Code for page 235: 200\n", | |
"Rows of data retrieved: 213 \n", | |
"\n", | |
"Response Code for page 236: 200\n", | |
"Rows of data retrieved: 214 \n", | |
"\n", | |
"Response Code for page 237: 200\n", | |
"Rows of data retrieved: 214 \n", | |
"\n", | |
"Response Code for page 238: 200\n", | |
"Rows of data retrieved: 215 \n", | |
"\n", | |
"Response Code for page 239: 200\n", | |
"Rows of data retrieved: 216 \n", | |
"\n", | |
"Response Code for page 240: 200\n", | |
"Rows of data retrieved: 217 \n", | |
"\n", | |
"Response Code for page 241: 200\n", | |
"Rows of data retrieved: 217 \n", | |
"\n", | |
"Response Code for page 242: 200\n", | |
"Rows of data retrieved: 217 \n", | |
"\n", | |
"Response Code for page 243: 200\n", | |
"Rows of data retrieved: 217 \n", | |
"\n", | |
"Response Code for page 244: 200\n", | |
"Rows of data retrieved: 218 \n", | |
"\n", | |
"Response Code for page 245: 200\n", | |
"Rows of data retrieved: 219 \n", | |
"\n", | |
"Response Code for page 246: 200\n", | |
"Rows of data retrieved: 221 \n", | |
"\n", | |
"Response Code for page 247: 200\n", | |
"Rows of data retrieved: 222 \n", | |
"\n", | |
"Response Code for page 248: 200\n", | |
"Rows of data retrieved: 223 \n", | |
"\n", | |
"Response Code for page 249: 200\n", | |
"Rows of data retrieved: 223 \n", | |
"\n", | |
"Response Code for page 250: 200\n", | |
"Rows of data retrieved: 224 \n", | |
"\n", | |
"Response Code for page 251: 200\n", | |
"Rows of data retrieved: 224 \n", | |
"\n", | |
"Response Code for page 252: 200\n", | |
"Rows of data retrieved: 225 \n", | |
"\n", | |
"Response Code for page 253: 200\n", | |
"Rows of data retrieved: 225 \n", | |
"\n", | |
"Response Code for page 254: 200\n", | |
"Rows of data retrieved: 225 \n", | |
"\n", | |
"Response Code for page 255: 200\n", | |
"Rows of data retrieved: 225 \n", | |
"\n", | |
"Response Code for page 256: 200\n", | |
"Rows of data retrieved: 227 \n", | |
"\n", | |
"Response Code for page 257: 200\n", | |
"Rows of data retrieved: 227 \n", | |
"\n", | |
"Response Code for page 258: 200\n", | |
"Rows of data retrieved: 227 \n", | |
"\n", | |
"Response Code for page 259: 200\n", | |
"Rows of data retrieved: 227 \n", | |
"\n", | |
"Response Code for page 260: 200\n", | |
"Rows of data retrieved: 228 \n", | |
"\n", | |
"Response Code for page 261: 200\n", | |
"Rows of data retrieved: 229 \n", | |
"\n", | |
"Response Code for page 262: 200\n", | |
"Rows of data retrieved: 229 \n", | |
"\n", | |
"Response Code for page 263: 200\n", | |
"Rows of data retrieved: 229 \n", | |
"\n", | |
"Response Code for page 264: 200\n", | |
"Rows of data retrieved: 229 \n", | |
"\n", | |
"Response Code for page 265: 200\n", | |
"Rows of data retrieved: 229 \n", | |
"\n", | |
"Response Code for page 266: 200\n", | |
"Rows of data retrieved: 230 \n", | |
"\n", | |
"Response Code for page 267: 200\n", | |
"Rows of data retrieved: 230 \n", | |
"\n", | |
"Response Code for page 268: 200\n", | |
"Rows of data retrieved: 230 \n", | |
"\n", | |
"Response Code for page 269: 200\n", | |
"Rows of data retrieved: 230 \n", | |
"\n", | |
"Response Code for page 270: 200\n", | |
"Rows of data retrieved: 230 \n", | |
"\n", | |
"Response Code for page 271: 200\n", | |
"Rows of data retrieved: 230 \n", | |
"\n", | |
"Response Code for page 272: 200\n", | |
"Rows of data retrieved: 230 \n", | |
"\n", | |
"Response Code for page 273: 200\n", | |
"Rows of data retrieved: 231 \n", | |
"\n", | |
"Response Code for page 274: 200\n", | |
"Rows of data retrieved: 231 \n", | |
"\n", | |
"Response Code for page 275: 200\n", | |
"Rows of data retrieved: 232 \n", | |
"\n", | |
"Response Code for page 276: 200\n", | |
"Rows of data retrieved: 232 \n", | |
"\n", | |
"Response Code for page 277: 200\n", | |
"Rows of data retrieved: 232 \n", | |
"\n", | |
"Response Code for page 278: 200\n", | |
"Rows of data retrieved: 232 \n", | |
"\n", | |
"Response Code for page 279: 200\n", | |
"Rows of data retrieved: 232 \n", | |
"\n", | |
"Response Code for page 280: 200\n", | |
"Rows of data retrieved: 233 \n", | |
"\n", | |
"Response Code for page 281: 200\n", | |
"Rows of data retrieved: 234 \n", | |
"\n", | |
"Response Code for page 282: 200\n", | |
"Rows of data retrieved: 235 \n", | |
"\n", | |
"Response Code for page 283: 200\n", | |
"Rows of data retrieved: 235 \n", | |
"\n", | |
"Response Code for page 284: 200\n", | |
"Rows of data retrieved: 237 \n", | |
"\n", | |
"Response Code for page 285: 200\n", | |
"Rows of data retrieved: 237 \n", | |
"\n", | |
"Response Code for page 286: 200\n", | |
"Rows of data retrieved: 237 \n", | |
"\n", | |
"Response Code for page 287: 200\n", | |
"Rows of data retrieved: 237 \n", | |
"\n", | |
"Response Code for page 288: 200\n", | |
"Rows of data retrieved: 238 \n", | |
"\n", | |
"Response Code for page 289: 200\n", | |
"Rows of data retrieved: 238 \n", | |
"\n", | |
"Response Code for page 290: 200\n", | |
"Rows of data retrieved: 240 \n", | |
"\n", | |
"Response Code for page 291: 200\n", | |
"Rows of data retrieved: 240 \n", | |
"\n", | |
"Response Code for page 292: 200\n", | |
"Rows of data retrieved: 240 \n", | |
"\n", | |
"Response Code for page 293: 200\n", | |
"Rows of data retrieved: 240 \n", | |
"\n", | |
"Response Code for page 294: 200\n", | |
"Rows of data retrieved: 240 \n", | |
"\n", | |
"Response Code for page 295: 200\n", | |
"Rows of data retrieved: 240 \n", | |
"\n", | |
"Response Code for page 296: 200\n", | |
"Rows of data retrieved: 240 \n", | |
"\n", | |
"Response Code for page 297: 200\n", | |
"Rows of data retrieved: 240 \n", | |
"\n", | |
"Response Code for page 298: 200\n", | |
"Rows of data retrieved: 240 \n", | |
"\n", | |
"Response Code for page 299: 200\n", | |
"Rows of data retrieved: 240 \n", | |
"\n", | |
"Response Code for page 300: 200\n", | |
"Rows of data retrieved: 240 \n", | |
"\n", | |
"Response Code for page 301: 200\n", | |
"Rows of data retrieved: 241 \n", | |
"\n", | |
"Response Code for page 302: 200\n", | |
"Rows of data retrieved: 242 \n", | |
"\n", | |
"Response Code for page 303: 200\n", | |
"Rows of data retrieved: 243 \n", | |
"\n", | |
"Response Code for page 304: 200\n", | |
"Rows of data retrieved: 243 \n", | |
"\n", | |
"Response Code for page 305: 200\n", | |
"Rows of data retrieved: 244 \n", | |
"\n", | |
"Response Code for page 306: 200\n", | |
"Rows of data retrieved: 244 \n", | |
"\n", | |
"Response Code for page 307: 200\n", | |
"Rows of data retrieved: 244 \n", | |
"\n", | |
"Response Code for page 308: 200\n", | |
"Rows of data retrieved: 244 \n", | |
"\n", | |
"Response Code for page 309: 200\n", | |
"Rows of data retrieved: 244 \n", | |
"\n", | |
"Response Code for page 310: 200\n", | |
"Rows of data retrieved: 244 \n", | |
"\n", | |
"Response Code for page 311: 200\n", | |
"Rows of data retrieved: 246 \n", | |
"\n", | |
"Response Code for page 312: 200\n", | |
"Rows of data retrieved: 246 \n", | |
"\n", | |
"Response Code for page 313: 200\n", | |
"Rows of data retrieved: 247 \n", | |
"\n", | |
"Response Code for page 314: 200\n", | |
"Rows of data retrieved: 247 \n", | |
"\n", | |
"Response Code for page 315: 200\n", | |
"Rows of data retrieved: 248 \n", | |
"\n", | |
"Response Code for page 316: 200\n", | |
"Rows of data retrieved: 248 \n", | |
"\n", | |
"Response Code for page 317: 200\n", | |
"Rows of data retrieved: 248 \n", | |
"\n", | |
"Response Code for page 318: 200\n", | |
"Rows of data retrieved: 248 \n", | |
"\n", | |
"Response Code for page 319: 200\n", | |
"Rows of data retrieved: 248 \n", | |
"\n", | |
"Response Code for page 320: 200\n", | |
"Rows of data retrieved: 248 \n", | |
"\n", | |
"Response Code for page 321: 200\n", | |
"Rows of data retrieved: 249 \n", | |
"\n", | |
"Response Code for page 322: 200\n", | |
"Rows of data retrieved: 250 \n", | |
"\n", | |
"Response Code for page 323: 200\n", | |
"Rows of data retrieved: 251 \n", | |
"\n", | |
"Response Code for page 324: 200\n", | |
"Rows of data retrieved: 251 \n", | |
"\n", | |
"Response Code for page 325: 200\n", | |
"Rows of data retrieved: 253 \n", | |
"\n", | |
"Response Code for page 326: 200\n", | |
"Rows of data retrieved: 253 \n", | |
"\n", | |
"Response Code for page 327: 200\n", | |
"Rows of data retrieved: 253 \n", | |
"\n", | |
"Response Code for page 328: 200\n", | |
"Rows of data retrieved: 253 \n", | |
"\n", | |
"Response Code for page 329: 200\n", | |
"Rows of data retrieved: 253 \n", | |
"\n", | |
"Response Code for page 330: 200\n", | |
"Rows of data retrieved: 253 \n", | |
"\n", | |
"Response Code for page 331: 200\n", | |
"Rows of data retrieved: 253 \n", | |
"\n", | |
"Response Code for page 332: 200\n", | |
"Rows of data retrieved: 253 \n", | |
"\n", | |
"Response Code for page 333: 200\n", | |
"Rows of data retrieved: 253 \n", | |
"\n", | |
"Response Code for page 334: 200\n", | |
"Rows of data retrieved: 253 \n", | |
"\n", | |
"Response Code for page 335: 200\n", | |
"Rows of data retrieved: 253 \n", | |
"\n", | |
"Response Code for page 336: 200\n", | |
"Rows of data retrieved: 253 \n", | |
"\n", | |
"Response Code for page 337: 200\n", | |
"Rows of data retrieved: 253 \n", | |
"\n", | |
"Response Code for page 338: 200\n", | |
"Rows of data retrieved: 253 \n", | |
"\n", | |
"Response Code for page 339: 200\n", | |
"Rows of data retrieved: 253 \n", | |
"\n", | |
"Response Code for page 340: 200\n", | |
"Rows of data retrieved: 253 \n", | |
"\n", | |
"Response Code for page 341: 200\n", | |
"Rows of data retrieved: 255 \n", | |
"\n", | |
"Response Code for page 342: 200\n", | |
"Rows of data retrieved: 256 \n", | |
"\n", | |
"Response Code for page 343: 200\n", | |
"Rows of data retrieved: 257 \n", | |
"\n", | |
"Response Code for page 344: 200\n", | |
"Rows of data retrieved: 259 \n", | |
"\n", | |
"Response Code for page 345: 200\n", | |
"Rows of data retrieved: 259 \n", | |
"\n", | |
"Response Code for page 346: 200\n", | |
"Rows of data retrieved: 260 \n", | |
"\n", | |
"Response Code for page 347: 200\n", | |
"Rows of data retrieved: 260 \n", | |
"\n", | |
"Response Code for page 348: 200\n", | |
"Rows of data retrieved: 260 \n", | |
"\n", | |
"Response Code for page 349: 200\n", | |
"Rows of data retrieved: 260 \n", | |
"\n", | |
"Response Code for page 350: 200\n", | |
"Rows of data retrieved: 260 \n", | |
"\n", | |
"Response Code for page 351: 200\n", | |
"Rows of data retrieved: 260 \n", | |
"\n", | |
"Response Code for page 352: 200\n", | |
"Rows of data retrieved: 260 \n", | |
"\n", | |
"Response Code for page 353: 200\n", | |
"Rows of data retrieved: 261 \n", | |
"\n", | |
"Response Code for page 354: 200\n", | |
"Rows of data retrieved: 261 \n", | |
"\n", | |
"Response Code for page 355: 200\n", | |
"Rows of data retrieved: 262 \n", | |
"\n", | |
"Response Code for page 356: 200\n", | |
"Rows of data retrieved: 262 \n", | |
"\n", | |
"Response Code for page 357: 200\n", | |
"Rows of data retrieved: 263 \n", | |
"\n", | |
"Response Code for page 358: 200\n", | |
"Rows of data retrieved: 263 \n", | |
"\n", | |
"Response Code for page 359: 200\n", | |
"Rows of data retrieved: 263 \n", | |
"\n", | |
"Response Code for page 360: 200\n", | |
"Rows of data retrieved: 263 \n", | |
"\n", | |
"Response Code for page 361: 200\n", | |
"Rows of data retrieved: 263 \n", | |
"\n", | |
"Response Code for page 362: 200\n", | |
"Rows of data retrieved: 263 \n", | |
"\n", | |
"Response Code for page 363: 200\n", | |
"Rows of data retrieved: 264 \n", | |
"\n", | |
"Response Code for page 364: 200\n", | |
"Rows of data retrieved: 264 \n", | |
"\n", | |
"Response Code for page 365: 200\n", | |
"Rows of data retrieved: 264 \n", | |
"\n", | |
"Response Code for page 366: 200\n", | |
"Rows of data retrieved: 264 \n", | |
"\n", | |
"Response Code for page 367: 200\n", | |
"Rows of data retrieved: 265 \n", | |
"\n", | |
"Response Code for page 368: 200\n", | |
"Rows of data retrieved: 265 \n", | |
"\n", | |
"Response Code for page 369: 200\n", | |
"Rows of data retrieved: 265 \n", | |
"\n", | |
"Response Code for page 370: 200\n", | |
"Rows of data retrieved: 265 \n", | |
"\n", | |
"Response Code for page 371: 200\n", | |
"Rows of data retrieved: 265 \n", | |
"\n", | |
"Response Code for page 372: 200\n", | |
"Rows of data retrieved: 265 \n", | |
"\n", | |
"Response Code for page 373: 200\n", | |
"Rows of data retrieved: 265 \n", | |
"\n", | |
"Response Code for page 374: 200\n", | |
"Rows of data retrieved: 265 \n", | |
"\n", | |
"Response Code for page 375: 200\n", | |
"Rows of data retrieved: 265 \n", | |
"\n", | |
"Response Code for page 376: 200\n", | |
"Rows of data retrieved: 265 \n", | |
"\n", | |
"Response Code for page 377: 200\n", | |
"Rows of data retrieved: 265 \n", | |
"\n", | |
"Response Code for page 378: 200\n", | |
"Rows of data retrieved: 265 \n", | |
"\n", | |
"Response Code for page 379: 200\n", | |
"Rows of data retrieved: 265 \n", | |
"\n", | |
"Response Code for page 380: 200\n", | |
"Rows of data retrieved: 265 \n", | |
"\n", | |
"Response Code for page 381: 200\n", | |
"Rows of data retrieved: 266 \n", | |
"\n", | |
"Response Code for page 382: 200\n", | |
"Rows of data retrieved: 266 \n", | |
"\n", | |
"Response Code for page 383: 200\n", | |
"Rows of data retrieved: 266 \n", | |
"\n", | |
"Response Code for page 384: 200\n", | |
"Rows of data retrieved: 267 \n", | |
"\n", | |
"Response Code for page 385: 200\n", | |
"Rows of data retrieved: 267 \n", | |
"\n", | |
"Response Code for page 386: 200\n", | |
"Rows of data retrieved: 267 \n", | |
"\n", | |
"Response Code for page 387: 200\n", | |
"Rows of data retrieved: 267 \n", | |
"\n", | |
"Response Code for page 388: 200\n", | |
"Rows of data retrieved: 268 \n", | |
"\n", | |
"Response Code for page 389: 200\n", | |
"Rows of data retrieved: 269 \n", | |
"\n", | |
"Response Code for page 390: 200\n", | |
"Rows of data retrieved: 269 \n", | |
"\n", | |
"Response Code for page 391: 200\n", | |
"Rows of data retrieved: 270 \n", | |
"\n", | |
"Response Code for page 392: 200\n", | |
"Rows of data retrieved: 270 \n", | |
"\n", | |
"Response Code for page 393: 200\n", | |
"Rows of data retrieved: 272 \n", | |
"\n", | |
"Response Code for page 394: 200\n", | |
"Rows of data retrieved: 273 \n", | |
"\n", | |
"Response Code for page 395: 200\n", | |
"Rows of data retrieved: 273 \n", | |
"\n", | |
"Response Code for page 396: 200\n", | |
"Rows of data retrieved: 273 \n", | |
"\n", | |
"Response Code for page 397: 200\n", | |
"Rows of data retrieved: 273 \n", | |
"\n", | |
"Response Code for page 398: 200\n", | |
"Rows of data retrieved: 274 \n", | |
"\n", | |
"Response Code for page 399: 200\n", | |
"Rows of data retrieved: 274 \n", | |
"\n", | |
"Response Code for page 400: 200\n", | |
"Rows of data retrieved: 274 \n", | |
"\n", | |
"Response Code for page 401: 200\n", | |
"Rows of data retrieved: 275 \n", | |
"\n", | |
"Response Code for page 402: 200\n", | |
"Rows of data retrieved: 275 \n", | |
"\n", | |
"Response Code for page 403: 200\n", | |
"Rows of data retrieved: 275 \n", | |
"\n", | |
"Response Code for page 404: 200\n", | |
"Rows of data retrieved: 275 \n", | |
"\n", | |
"Response Code for page 405: 200\n", | |
"Rows of data retrieved: 275 \n", | |
"\n", | |
"Response Code for page 406: 200\n", | |
"Rows of data retrieved: 276 \n", | |
"\n", | |
"Response Code for page 407: 200\n", | |
"Rows of data retrieved: 276 \n", | |
"\n", | |
"Response Code for page 408: 200\n", | |
"Rows of data retrieved: 277 \n", | |
"\n", | |
"Response Code for page 409: 200\n", | |
"Rows of data retrieved: 277 \n", | |
"\n", | |
"Response Code for page 410: 200\n", | |
"Rows of data retrieved: 278 \n", | |
"\n", | |
"Response Code for page 411: 200\n", | |
"Rows of data retrieved: 278 \n", | |
"\n", | |
"Response Code for page 412: 200\n", | |
"Rows of data retrieved: 278 \n", | |
"\n", | |
"Response Code for page 413: 200\n", | |
"Rows of data retrieved: 279 \n", | |
"\n", | |
"Response Code for page 414: 200\n", | |
"Rows of data retrieved: 279 \n", | |
"\n", | |
"Response Code for page 415: 200\n", | |
"Rows of data retrieved: 279 \n", | |
"\n", | |
"Response Code for page 416: 200\n", | |
"Rows of data retrieved: 279 \n", | |
"\n", | |
"Response Code for page 417: 200\n", | |
"Rows of data retrieved: 279 \n", | |
"\n", | |
"Response Code for page 418: 200\n", | |
"Rows of data retrieved: 279 \n", | |
"\n", | |
"Response Code for page 419: 200\n", | |
"Rows of data retrieved: 279 \n", | |
"\n", | |
"Response Code for page 420: 200\n", | |
"Rows of data retrieved: 279 \n", | |
"\n", | |
"Response Code for page 421: 200\n", | |
"Rows of data retrieved: 280 \n", | |
"\n", | |
"Response Code for page 422: 200\n", | |
"Rows of data retrieved: 280 \n", | |
"\n", | |
"Response Code for page 423: 200\n", | |
"Rows of data retrieved: 280 \n", | |
"\n", | |
"Response Code for page 424: 200\n", | |
"Rows of data retrieved: 281 \n", | |
"\n", | |
"Response Code for page 425: 200\n", | |
"Rows of data retrieved: 281 \n", | |
"\n", | |
"Response Code for page 426: 200\n", | |
"Rows of data retrieved: 281 \n", | |
"\n", | |
"Response Code for page 427: 200\n", | |
"Rows of data retrieved: 281 \n", | |
"\n", | |
"Response Code for page 428: 200\n", | |
"Rows of data retrieved: 281 \n", | |
"\n", | |
"Response Code for page 429: 200\n", | |
"Rows of data retrieved: 281 \n", | |
"\n", | |
"Response Code for page 430: 200\n", | |
"Rows of data retrieved: 281 \n", | |
"\n", | |
"Response Code for page 431: 200\n", | |
"Rows of data retrieved: 283 \n", | |
"\n", | |
"Response Code for page 432: 200\n", | |
"Rows of data retrieved: 283 \n", | |
"\n", | |
"Response Code for page 433: 200\n", | |
"Rows of data retrieved: 283 \n", | |
"\n", | |
"Response Code for page 434: 200\n", | |
"Rows of data retrieved: 284 \n", | |
"\n", | |
"Response Code for page 435: 200\n", | |
"Rows of data retrieved: 284 \n", | |
"\n", | |
"Response Code for page 436: 200\n", | |
"Rows of data retrieved: 284 \n", | |
"\n", | |
"Response Code for page 437: 200\n", | |
"Rows of data retrieved: 285 \n", | |
"\n", | |
"Response Code for page 438: 200\n", | |
"Rows of data retrieved: 285 \n", | |
"\n", | |
"Response Code for page 439: 200\n", | |
"Rows of data retrieved: 286 \n", | |
"\n", | |
"Response Code for page 440: 200\n", | |
"Rows of data retrieved: 287 \n", | |
"\n", | |
"Response Code for page 441: 200\n", | |
"Rows of data retrieved: 288 \n", | |
"\n", | |
"Response Code for page 442: 200\n", | |
"Rows of data retrieved: 288 \n", | |
"\n", | |
"Response Code for page 443: 200\n", | |
"Rows of data retrieved: 288 \n", | |
"\n", | |
"Response Code for page 444: 200\n", | |
"Rows of data retrieved: 289 \n", | |
"\n", | |
"Response Code for page 445: 200\n", | |
"Rows of data retrieved: 289 \n", | |
"\n", | |
"Response Code for page 446: 200\n", | |
"Rows of data retrieved: 289 \n", | |
"\n", | |
"Response Code for page 447: 200\n", | |
"Rows of data retrieved: 289 \n", | |
"\n", | |
"Response Code for page 448: 200\n", | |
"Rows of data retrieved: 289 \n", | |
"\n", | |
"Response Code for page 449: 200\n", | |
"Rows of data retrieved: 290 \n", | |
"\n", | |
"Response Code for page 450: 200\n", | |
"Rows of data retrieved: 290 \n", | |
"\n", | |
"Response Code for page 451: 200\n", | |
"Rows of data retrieved: 290 \n", | |
"\n", | |
"Response Code for page 452: 200\n", | |
"Rows of data retrieved: 290 \n", | |
"\n", | |
"Response Code for page 453: 200\n", | |
"Rows of data retrieved: 290 \n", | |
"\n", | |
"Response Code for page 454: 200\n", | |
"Rows of data retrieved: 290 \n", | |
"\n", | |
"Response Code for page 455: 200\n", | |
"Rows of data retrieved: 290 \n", | |
"\n", | |
"Response Code for page 456: 200\n", | |
"Rows of data retrieved: 290 \n", | |
"\n", | |
"Response Code for page 457: 200\n", | |
"Rows of data retrieved: 290 \n", | |
"\n", | |
"Response Code for page 458: 200\n", | |
"Rows of data retrieved: 291 \n", | |
"\n", | |
"Response Code for page 459: 200\n", | |
"Rows of data retrieved: 291 \n", | |
"\n", | |
"Response Code for page 460: 200\n", | |
"Rows of data retrieved: 291 \n", | |
"\n", | |
"Response Code for page 461: 200\n", | |
"Rows of data retrieved: 291 \n", | |
"\n", | |
"Response Code for page 462: 200\n", | |
"Rows of data retrieved: 292 \n", | |
"\n", | |
"Response Code for page 463: 200\n", | |
"Rows of data retrieved: 292 \n", | |
"\n", | |
"Response Code for page 464: 200\n", | |
"Rows of data retrieved: 292 \n", | |
"\n", | |
"Response Code for page 465: 200\n", | |
"Rows of data retrieved: 292 \n", | |
"\n", | |
"Response Code for page 466: 200\n", | |
"Rows of data retrieved: 292 \n", | |
"\n", | |
"Response Code for page 467: 200\n", | |
"Rows of data retrieved: 292 \n", | |
"\n", | |
"Response Code for page 468: 200\n", | |
"Rows of data retrieved: 293 \n", | |
"\n", | |
"Response Code for page 469: 200\n", | |
"Rows of data retrieved: 293 \n", | |
"\n", | |
"Response Code for page 470: 200\n", | |
"Rows of data retrieved: 293 \n", | |
"\n", | |
"Response Code for page 471: 200\n", | |
"Rows of data retrieved: 293 \n", | |
"\n", | |
"Response Code for page 472: 200\n", | |
"Rows of data retrieved: 293 \n", | |
"\n", | |
"Response Code for page 473: 200\n", | |
"Rows of data retrieved: 294 \n", | |
"\n", | |
"Response Code for page 474: 200\n", | |
"Rows of data retrieved: 294 \n", | |
"\n", | |
"Response Code for page 475: 200\n", | |
"Rows of data retrieved: 294 \n", | |
"\n", | |
"Response Code for page 476: 200\n", | |
"Rows of data retrieved: 294 \n", | |
"\n", | |
"Response Code for page 477: 200\n", | |
"Rows of data retrieved: 295 \n", | |
"\n", | |
"Response Code for page 478: 200\n", | |
"Rows of data retrieved: 295 \n", | |
"\n", | |
"Response Code for page 479: 200\n", | |
"Rows of data retrieved: 295 \n", | |
"\n", | |
"Response Code for page 480: 200\n", | |
"Rows of data retrieved: 295 \n", | |
"\n", | |
"Response Code for page 481: 200\n", | |
"Rows of data retrieved: 295 \n", | |
"\n", | |
"Response Code for page 482: 200\n", | |
"Rows of data retrieved: 296 \n", | |
"\n", | |
"Response Code for page 483: 200\n", | |
"Rows of data retrieved: 296 \n", | |
"\n", | |
"Response Code for page 484: 200\n", | |
"Rows of data retrieved: 296 \n", | |
"\n", | |
"Response Code for page 485: 200\n", | |
"Rows of data retrieved: 296 \n", | |
"\n", | |
"Response Code for page 486: 200\n", | |
"Rows of data retrieved: 296 \n", | |
"\n", | |
"Response Code for page 487: 200\n", | |
"Rows of data retrieved: 297 \n", | |
"\n", | |
"Response Code for page 488: 200\n", | |
"Rows of data retrieved: 297 \n", | |
"\n", | |
"Response Code for page 489: 200\n", | |
"Rows of data retrieved: 297 \n", | |
"\n", | |
"Response Code for page 490: 200\n", | |
"Rows of data retrieved: 297 \n", | |
"\n", | |
"Response Code for page 491: 200\n", | |
"Rows of data retrieved: 297 \n", | |
"\n", | |
"Response Code for page 492: 200\n", | |
"Rows of data retrieved: 297 \n", | |
"\n", | |
"Response Code for page 493: 200\n", | |
"Rows of data retrieved: 297 \n", | |
"\n", | |
"Response Code for page 494: 200\n", | |
"Rows of data retrieved: 297 \n", | |
"\n", | |
"Response Code for page 495: 200\n", | |
"Rows of data retrieved: 297 \n", | |
"\n", | |
"Response Code for page 496: 200\n", | |
"Rows of data retrieved: 298 \n", | |
"\n", | |
"Response Code for page 497: 200\n", | |
"Rows of data retrieved: 300 \n", | |
"\n", | |
"Response Code for page 498: 200\n", | |
"Rows of data retrieved: 300 \n", | |
"\n", | |
"Response Code for page 499: 200\n", | |
"Rows of data retrieved: 300 \n", | |
"\n", | |
"Response Code for page 500: 200\n", | |
"Rows of data retrieved: 300 \n", | |
"\n", | |
"Response Code for page 501: 400\n", | |
"Rows of data retrieved: 300 \n", | |
"\n", | |
"There are no more records to retrieve. \n", | |
"\n", | |
"Total pages processed: 500 \n", | |
"\n", | |
"Total rows of data retrieved: 300 \n", | |
"\n" | |
] | |
} | |
], | |
"source": [ | |
"# Establishing global variables for the API\n", | |
"api_key = '460f7b576a1b5c789d7d574f7fcc4f5f'\n", | |
"language = 'en-US'\n", | |
"url = 'https://api.themoviedb.org/3/'\n", | |
"popular_movie_endpoint = 'movie/popular'\n", | |
"params = {'api_key': api_key, 'language': language, 'year': 2024}\n", | |
"headers = {'accept': 'application/json'}\n", | |
"\n", | |
"def get_2024_popular_movie_data():\n", | |
" # Initialize an empty list to store the data from all of the pages in the API\n", | |
" all_pages_data = []\n", | |
"\n", | |
" total_pages = 0\n", | |
"\n", | |
" # Iterate through pages 1 to 600 to fetch data\n", | |
" for page in range(1, 601):\n", | |
" try:\n", | |
" # Update the 'page' parameter in the API request to keep count of which page you are on within the loop\n", | |
" params['page'] = page\n", | |
"\n", | |
" # Make the API request to fetch the movie data\n", | |
" response = requests.get(url + popular_movie_endpoint, headers=headers, params=params)\n", | |
" print(f'Response Code for page {page}: {response.status_code}')\n", | |
"\n", | |
"\n", | |
" # Parse the JSON response and assign it to a variable\n", | |
" json_file = response.json()\n", | |
"\n", | |
" # Filter the results to include only movies released in 2024 and in English\n", | |
" filtered_results = [movie for movie in json_file.get('results', []) if movie.get('release_date', '').startswith('2024') and movie.get('original_language') == 'en']\n", | |
"\n", | |
" # Append the filtered results to the all_pages_data list and print the number of rows retrieved for the page\n", | |
" all_pages_data.extend(filtered_results)\n", | |
" print('Rows of data retrieved: '+str(len(all_pages_data)), '\\n')\n", | |
"\n", | |
" # If there are no more results in the JSON response, the script will print the statement and terminate\n", | |
" if json_file.get('results',[]) == []:\n", | |
" print('There are no more records to retrieve.', '\\n')\n", | |
" break\n", | |
"\n", | |
" total_pages += 1\n", | |
"\n", | |
" # Handle exceptions related to the API request call\n", | |
" except requests.exceptions.RequestException as e:\n", | |
" print(f'Error connecting to the API: {e}')\n", | |
" raise SystemExit\n", | |
"\n", | |
" # Handle exceptions related to processing the API response\n", | |
" except KeyError as e:\n", | |
" print(f'Error processing the API response: {e}')\n", | |
" raise SystemExit\n", | |
"\n", | |
" # Print the total number of pages processed\n", | |
" print(f'Total pages processed: {total_pages}', '\\n')\n", | |
"\n", | |
" print('Total rows of data retrieved: ' + str(len(all_pages_data)), '\\n')\n", | |
"\n", | |
" # Return the list of all retrieved movie data\n", | |
" return all_pages_data\n", | |
"\n", | |
"# Assign the 'get_2024_popular_movie_data' function to a variable\n", | |
"popular_movies_data_2024 = get_2024_popular_movie_data()\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "HmxM-YZZEVOp" | |
}, | |
"source": [ | |
"# 5.1 Convert JSON Data To a Pandas Dataframe \n", | |
"* Create a function to convert the `filtered_popular_movies_data` JSON file to a Pandas dataframe.\n", | |
"* Add a Doc string to the function to document the details of the function. \n", | |
"\n", | |
"<b>Note:</b> Take note of the difference between this function and the last JSON --> Pandas DF conversion function that we created in 4.0. This function uses an argumet variable called `json_data` while the previous one did not.\n", | |
"\n", | |
"<b>Note:</b> Doc strings are used to explain how a function works. It's good practice to include doc strings for each function." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "wzXwmx7wEVOq", | |
"outputId": "265c1f43-97e2-4714-b22e-65b978086f09", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 1000 | |
} | |
}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"Converting JSON data to Pandas Dataframe \n", | |
"\n" | |
] | |
}, | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
" adult backdrop_path genre_ids id \\\n", | |
"0 False /xg27NrXi7VXCGUr7MG75UqLl6Vg.jpg [16, 10751, 12, 35] 1022789 \n", | |
"1 False /fDmci71SMkfZM8RnCuXJVDPaSdE.jpg [16, 10751, 35, 28] 519182 \n", | |
"2 False /Akv9GlCCMrzcDkVz4ad8MdLl9DK.jpg [16, 35, 10751, 12] 748783 \n", | |
"3 False /wNAhuOZ3Zf84jCIlrcI6JhgmY5q.jpg [28, 12, 878] 786892 \n", | |
"4 False /fqv8v6AycXKsivp1T5yKtLbGXce.jpg [878, 12, 28] 653346 \n", | |
".. ... ... ... ... \n", | |
"295 False /aqvGE8cMM5zta73xlNEtWlLqpWx.jpg [16] 629078 \n", | |
"296 False /jWrJjlBeFuOLZHETn85lZ0vHPUK.jpg [10402, 99] 1280042 \n", | |
"297 False /v7bGLVacGLXop3hp5wTDY6HsB1i.jpg [18, 878] 592831 \n", | |
"298 False None [] 1301417 \n", | |
"299 False /ngrJjNw3hJRXwMfGLIhchEaBobW.jpg [99] 1242384 \n", | |
"\n", | |
" original_language original_title \\\n", | |
"0 en Inside Out 2 \n", | |
"1 en Despicable Me 4 \n", | |
"2 en The Garfield Movie \n", | |
"3 en Furiosa: A Mad Max Saga \n", | |
"4 en Kingdom of the Planet of the Apes \n", | |
".. ... ... \n", | |
"295 en The Glassworker \n", | |
"296 en Madonna: The Celebration Tour in Rio \n", | |
"297 en Megalopolis \n", | |
"298 en Swahi \n", | |
"299 en The Antisocial Network: Memes to Mayhem \n", | |
"\n", | |
" overview popularity \\\n", | |
"0 Teenager Riley's mind headquarters is undergoi... 5389.964 \n", | |
"1 Gru and Lucy and their girls — Margo, Edith an... 4182.190 \n", | |
"2 Garfield, the world-famous, Monday-hating, las... 2209.679 \n", | |
"3 As the world fell, young Furiosa is snatched f... 1802.966 \n", | |
"4 Several generations following Caesar's reign, ... 1685.471 \n", | |
".. ... ... \n", | |
"295 The life of a young glassblower in training an... 21.098 \n", | |
"296 Madonna celebrates her four-decade career in a... 14.855 \n", | |
"297 Genius artist Cesar Catilina seeks to leap the... 28.421 \n", | |
"298 20.712 \n", | |
"299 From Rickrolling to viral conspiracy theories,... 20.709 \n", | |
"\n", | |
" poster_path release_date \\\n", | |
"0 /vpnVM9B6NMmQpWeZvzLvDESb2QY.jpg 2024-06-11 \n", | |
"1 /3w84hCFJATpiCO5g8hpdWVPBbmq.jpg 2024-06-20 \n", | |
"2 /p6AbOJvMQhBmffd0PIv0u8ghWeY.jpg 2024-04-30 \n", | |
"3 /iADOJ8Zymht2JPMoy3R7xceZprc.jpg 2024-05-22 \n", | |
"4 /gKkl37BQuKTanygYQG1pyYgLVgf.jpg 2024-05-08 \n", | |
".. ... ... \n", | |
"295 /pznTVwDl2qEVwHT1TEVd7AnVC7H.jpg 2024-07-26 \n", | |
"296 /7PvmeXZpneJJOHU5A95ShAywaoB.jpg 2024-05-04 \n", | |
"297 /m0BJiPZs5iWzbJWe2uRNotZpKOk.jpg 2024-09-25 \n", | |
"298 /x3NJ5w7n7msDZFKoiDwoLlbKh0s.jpg 2024-07-19 \n", | |
"299 /AlJKsIzkSU629hEhbRzRb1cSxA1.jpg 2024-03-10 \n", | |
"\n", | |
" title video vote_average vote_count \n", | |
"0 Inside Out 2 False 7.699 1868 \n", | |
"1 Despicable Me 4 False 7.500 301 \n", | |
"2 The Garfield Movie False 7.274 451 \n", | |
"3 Furiosa: A Mad Max Saga False 7.600 2170 \n", | |
"4 Kingdom of the Planet of the Apes False 7.131 1893 \n", | |
".. ... ... ... ... \n", | |
"295 The Glassworker False 0.000 0 \n", | |
"296 Madonna: The Celebration Tour in Rio False 8.900 9 \n", | |
"297 Megalopolis False 0.000 0 \n", | |
"298 Swahi False 0.000 0 \n", | |
"299 The Antisocial Network: Memes to Mayhem False 6.450 20 \n", | |
"\n", | |
"[300 rows x 14 columns]" | |
], | |
"text/html": [ | |
"\n", | |
" <div id=\"df-1b8f721c-0786-453f-9aea-bbd45f386c4d\" class=\"colab-df-container\">\n", | |
" <div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>adult</th>\n", | |
" <th>backdrop_path</th>\n", | |
" <th>genre_ids</th>\n", | |
" <th>id</th>\n", | |
" <th>original_language</th>\n", | |
" <th>original_title</th>\n", | |
" <th>overview</th>\n", | |
" <th>popularity</th>\n", | |
" <th>poster_path</th>\n", | |
" <th>release_date</th>\n", | |
" <th>title</th>\n", | |
" <th>video</th>\n", | |
" <th>vote_average</th>\n", | |
" <th>vote_count</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>False</td>\n", | |
" <td>/xg27NrXi7VXCGUr7MG75UqLl6Vg.jpg</td>\n", | |
" <td>[16, 10751, 12, 35]</td>\n", | |
" <td>1022789</td>\n", | |
" <td>en</td>\n", | |
" <td>Inside Out 2</td>\n", | |
" <td>Teenager Riley's mind headquarters is undergoi...</td>\n", | |
" <td>5389.964</td>\n", | |
" <td>/vpnVM9B6NMmQpWeZvzLvDESb2QY.jpg</td>\n", | |
" <td>2024-06-11</td>\n", | |
" <td>Inside Out 2</td>\n", | |
" <td>False</td>\n", | |
" <td>7.699</td>\n", | |
" <td>1868</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>False</td>\n", | |
" <td>/fDmci71SMkfZM8RnCuXJVDPaSdE.jpg</td>\n", | |
" <td>[16, 10751, 35, 28]</td>\n", | |
" <td>519182</td>\n", | |
" <td>en</td>\n", | |
" <td>Despicable Me 4</td>\n", | |
" <td>Gru and Lucy and their girls — Margo, Edith an...</td>\n", | |
" <td>4182.190</td>\n", | |
" <td>/3w84hCFJATpiCO5g8hpdWVPBbmq.jpg</td>\n", | |
" <td>2024-06-20</td>\n", | |
" <td>Despicable Me 4</td>\n", | |
" <td>False</td>\n", | |
" <td>7.500</td>\n", | |
" <td>301</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>False</td>\n", | |
" <td>/Akv9GlCCMrzcDkVz4ad8MdLl9DK.jpg</td>\n", | |
" <td>[16, 35, 10751, 12]</td>\n", | |
" <td>748783</td>\n", | |
" <td>en</td>\n", | |
" <td>The Garfield Movie</td>\n", | |
" <td>Garfield, the world-famous, Monday-hating, las...</td>\n", | |
" <td>2209.679</td>\n", | |
" <td>/p6AbOJvMQhBmffd0PIv0u8ghWeY.jpg</td>\n", | |
" <td>2024-04-30</td>\n", | |
" <td>The Garfield Movie</td>\n", | |
" <td>False</td>\n", | |
" <td>7.274</td>\n", | |
" <td>451</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>False</td>\n", | |
" <td>/wNAhuOZ3Zf84jCIlrcI6JhgmY5q.jpg</td>\n", | |
" <td>[28, 12, 878]</td>\n", | |
" <td>786892</td>\n", | |
" <td>en</td>\n", | |
" <td>Furiosa: A Mad Max Saga</td>\n", | |
" <td>As the world fell, young Furiosa is snatched f...</td>\n", | |
" <td>1802.966</td>\n", | |
" <td>/iADOJ8Zymht2JPMoy3R7xceZprc.jpg</td>\n", | |
" <td>2024-05-22</td>\n", | |
" <td>Furiosa: A Mad Max Saga</td>\n", | |
" <td>False</td>\n", | |
" <td>7.600</td>\n", | |
" <td>2170</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>False</td>\n", | |
" <td>/fqv8v6AycXKsivp1T5yKtLbGXce.jpg</td>\n", | |
" <td>[878, 12, 28]</td>\n", | |
" <td>653346</td>\n", | |
" <td>en</td>\n", | |
" <td>Kingdom of the Planet of the Apes</td>\n", | |
" <td>Several generations following Caesar's reign, ...</td>\n", | |
" <td>1685.471</td>\n", | |
" <td>/gKkl37BQuKTanygYQG1pyYgLVgf.jpg</td>\n", | |
" <td>2024-05-08</td>\n", | |
" <td>Kingdom of the Planet of the Apes</td>\n", | |
" <td>False</td>\n", | |
" <td>7.131</td>\n", | |
" <td>1893</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>...</th>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>295</th>\n", | |
" <td>False</td>\n", | |
" <td>/aqvGE8cMM5zta73xlNEtWlLqpWx.jpg</td>\n", | |
" <td>[16]</td>\n", | |
" <td>629078</td>\n", | |
" <td>en</td>\n", | |
" <td>The Glassworker</td>\n", | |
" <td>The life of a young glassblower in training an...</td>\n", | |
" <td>21.098</td>\n", | |
" <td>/pznTVwDl2qEVwHT1TEVd7AnVC7H.jpg</td>\n", | |
" <td>2024-07-26</td>\n", | |
" <td>The Glassworker</td>\n", | |
" <td>False</td>\n", | |
" <td>0.000</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>296</th>\n", | |
" <td>False</td>\n", | |
" <td>/jWrJjlBeFuOLZHETn85lZ0vHPUK.jpg</td>\n", | |
" <td>[10402, 99]</td>\n", | |
" <td>1280042</td>\n", | |
" <td>en</td>\n", | |
" <td>Madonna: The Celebration Tour in Rio</td>\n", | |
" <td>Madonna celebrates her four-decade career in a...</td>\n", | |
" <td>14.855</td>\n", | |
" <td>/7PvmeXZpneJJOHU5A95ShAywaoB.jpg</td>\n", | |
" <td>2024-05-04</td>\n", | |
" <td>Madonna: The Celebration Tour in Rio</td>\n", | |
" <td>False</td>\n", | |
" <td>8.900</td>\n", | |
" <td>9</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>297</th>\n", | |
" <td>False</td>\n", | |
" <td>/v7bGLVacGLXop3hp5wTDY6HsB1i.jpg</td>\n", | |
" <td>[18, 878]</td>\n", | |
" <td>592831</td>\n", | |
" <td>en</td>\n", | |
" <td>Megalopolis</td>\n", | |
" <td>Genius artist Cesar Catilina seeks to leap the...</td>\n", | |
" <td>28.421</td>\n", | |
" <td>/m0BJiPZs5iWzbJWe2uRNotZpKOk.jpg</td>\n", | |
" <td>2024-09-25</td>\n", | |
" <td>Megalopolis</td>\n", | |
" <td>False</td>\n", | |
" <td>0.000</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>298</th>\n", | |
" <td>False</td>\n", | |
" <td>None</td>\n", | |
" <td>[]</td>\n", | |
" <td>1301417</td>\n", | |
" <td>en</td>\n", | |
" <td>Swahi</td>\n", | |
" <td></td>\n", | |
" <td>20.712</td>\n", | |
" <td>/x3NJ5w7n7msDZFKoiDwoLlbKh0s.jpg</td>\n", | |
" <td>2024-07-19</td>\n", | |
" <td>Swahi</td>\n", | |
" <td>False</td>\n", | |
" <td>0.000</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>299</th>\n", | |
" <td>False</td>\n", | |
" <td>/ngrJjNw3hJRXwMfGLIhchEaBobW.jpg</td>\n", | |
" <td>[99]</td>\n", | |
" <td>1242384</td>\n", | |
" <td>en</td>\n", | |
" <td>The Antisocial Network: Memes to Mayhem</td>\n", | |
" <td>From Rickrolling to viral conspiracy theories,...</td>\n", | |
" <td>20.709</td>\n", | |
" <td>/AlJKsIzkSU629hEhbRzRb1cSxA1.jpg</td>\n", | |
" <td>2024-03-10</td>\n", | |
" <td>The Antisocial Network: Memes to Mayhem</td>\n", | |
" <td>False</td>\n", | |
" <td>6.450</td>\n", | |
" <td>20</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>300 rows × 14 columns</p>\n", | |
"</div>\n", | |
" <div class=\"colab-df-buttons\">\n", | |
"\n", | |
" <div class=\"colab-df-container\">\n", | |
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-1b8f721c-0786-453f-9aea-bbd45f386c4d')\"\n", | |
" title=\"Convert this dataframe to an interactive table.\"\n", | |
" style=\"display:none;\">\n", | |
"\n", | |
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n", | |
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n", | |
" </svg>\n", | |
" </button>\n", | |
"\n", | |
" <style>\n", | |
" .colab-df-container {\n", | |
" display:flex;\n", | |
" gap: 12px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert {\n", | |
" background-color: #E8F0FE;\n", | |
" border: none;\n", | |
" border-radius: 50%;\n", | |
" cursor: pointer;\n", | |
" display: none;\n", | |
" fill: #1967D2;\n", | |
" height: 32px;\n", | |
" padding: 0 0 0 0;\n", | |
" width: 32px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert:hover {\n", | |
" background-color: #E2EBFA;\n", | |
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n", | |
" fill: #174EA6;\n", | |
" }\n", | |
"\n", | |
" .colab-df-buttons div {\n", | |
" margin-bottom: 4px;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert {\n", | |
" background-color: #3B4455;\n", | |
" fill: #D2E3FC;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert:hover {\n", | |
" background-color: #434B5C;\n", | |
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n", | |
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n", | |
" fill: #FFFFFF;\n", | |
" }\n", | |
" </style>\n", | |
"\n", | |
" <script>\n", | |
" const buttonEl =\n", | |
" document.querySelector('#df-1b8f721c-0786-453f-9aea-bbd45f386c4d button.colab-df-convert');\n", | |
" buttonEl.style.display =\n", | |
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n", | |
"\n", | |
" async function convertToInteractive(key) {\n", | |
" const element = document.querySelector('#df-1b8f721c-0786-453f-9aea-bbd45f386c4d');\n", | |
" const dataTable =\n", | |
" await google.colab.kernel.invokeFunction('convertToInteractive',\n", | |
" [key], {});\n", | |
" if (!dataTable) return;\n", | |
"\n", | |
" const docLinkHtml = 'Like what you see? Visit the ' +\n", | |
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n", | |
" + ' to learn more about interactive tables.';\n", | |
" element.innerHTML = '';\n", | |
" dataTable['output_type'] = 'display_data';\n", | |
" await google.colab.output.renderOutput(dataTable, element);\n", | |
" const docLink = document.createElement('div');\n", | |
" docLink.innerHTML = docLinkHtml;\n", | |
" element.appendChild(docLink);\n", | |
" }\n", | |
" </script>\n", | |
" </div>\n", | |
"\n", | |
"\n", | |
"<div id=\"df-2b6119b1-fe35-43a6-a535-d97e6fc91359\">\n", | |
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-2b6119b1-fe35-43a6-a535-d97e6fc91359')\"\n", | |
" title=\"Suggest charts\"\n", | |
" style=\"display:none;\">\n", | |
"\n", | |
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n", | |
" width=\"24px\">\n", | |
" <g>\n", | |
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n", | |
" </g>\n", | |
"</svg>\n", | |
" </button>\n", | |
"\n", | |
"<style>\n", | |
" .colab-df-quickchart {\n", | |
" --bg-color: #E8F0FE;\n", | |
" --fill-color: #1967D2;\n", | |
" --hover-bg-color: #E2EBFA;\n", | |
" --hover-fill-color: #174EA6;\n", | |
" --disabled-fill-color: #AAA;\n", | |
" --disabled-bg-color: #DDD;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-quickchart {\n", | |
" --bg-color: #3B4455;\n", | |
" --fill-color: #D2E3FC;\n", | |
" --hover-bg-color: #434B5C;\n", | |
" --hover-fill-color: #FFFFFF;\n", | |
" --disabled-bg-color: #3B4455;\n", | |
" --disabled-fill-color: #666;\n", | |
" }\n", | |
"\n", | |
" .colab-df-quickchart {\n", | |
" background-color: var(--bg-color);\n", | |
" border: none;\n", | |
" border-radius: 50%;\n", | |
" cursor: pointer;\n", | |
" display: none;\n", | |
" fill: var(--fill-color);\n", | |
" height: 32px;\n", | |
" padding: 0;\n", | |
" width: 32px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-quickchart:hover {\n", | |
" background-color: var(--hover-bg-color);\n", | |
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n", | |
" fill: var(--button-hover-fill-color);\n", | |
" }\n", | |
"\n", | |
" .colab-df-quickchart-complete:disabled,\n", | |
" .colab-df-quickchart-complete:disabled:hover {\n", | |
" background-color: var(--disabled-bg-color);\n", | |
" fill: var(--disabled-fill-color);\n", | |
" box-shadow: none;\n", | |
" }\n", | |
"\n", | |
" .colab-df-spinner {\n", | |
" border: 2px solid var(--fill-color);\n", | |
" border-color: transparent;\n", | |
" border-bottom-color: var(--fill-color);\n", | |
" animation:\n", | |
" spin 1s steps(1) infinite;\n", | |
" }\n", | |
"\n", | |
" @keyframes spin {\n", | |
" 0% {\n", | |
" border-color: transparent;\n", | |
" border-bottom-color: var(--fill-color);\n", | |
" border-left-color: var(--fill-color);\n", | |
" }\n", | |
" 20% {\n", | |
" border-color: transparent;\n", | |
" border-left-color: var(--fill-color);\n", | |
" border-top-color: var(--fill-color);\n", | |
" }\n", | |
" 30% {\n", | |
" border-color: transparent;\n", | |
" border-left-color: var(--fill-color);\n", | |
" border-top-color: var(--fill-color);\n", | |
" border-right-color: var(--fill-color);\n", | |
" }\n", | |
" 40% {\n", | |
" border-color: transparent;\n", | |
" border-right-color: var(--fill-color);\n", | |
" border-top-color: var(--fill-color);\n", | |
" }\n", | |
" 60% {\n", | |
" border-color: transparent;\n", | |
" border-right-color: var(--fill-color);\n", | |
" }\n", | |
" 80% {\n", | |
" border-color: transparent;\n", | |
" border-right-color: var(--fill-color);\n", | |
" border-bottom-color: var(--fill-color);\n", | |
" }\n", | |
" 90% {\n", | |
" border-color: transparent;\n", | |
" border-bottom-color: var(--fill-color);\n", | |
" }\n", | |
" }\n", | |
"</style>\n", | |
"\n", | |
" <script>\n", | |
" async function quickchart(key) {\n", | |
" const quickchartButtonEl =\n", | |
" document.querySelector('#' + key + ' button');\n", | |
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n", | |
" quickchartButtonEl.classList.add('colab-df-spinner');\n", | |
" try {\n", | |
" const charts = await google.colab.kernel.invokeFunction(\n", | |
" 'suggestCharts', [key], {});\n", | |
" } catch (error) {\n", | |
" console.error('Error during call to suggestCharts:', error);\n", | |
" }\n", | |
" quickchartButtonEl.classList.remove('colab-df-spinner');\n", | |
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n", | |
" }\n", | |
" (() => {\n", | |
" let quickchartButtonEl =\n", | |
" document.querySelector('#df-2b6119b1-fe35-43a6-a535-d97e6fc91359 button');\n", | |
" quickchartButtonEl.style.display =\n", | |
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n", | |
" })();\n", | |
" </script>\n", | |
"</div>\n", | |
"\n", | |
" <div id=\"id_0e60c248-3f0f-4649-9d07-f559ffaee47f\">\n", | |
" <style>\n", | |
" .colab-df-generate {\n", | |
" background-color: #E8F0FE;\n", | |
" border: none;\n", | |
" border-radius: 50%;\n", | |
" cursor: pointer;\n", | |
" display: none;\n", | |
" fill: #1967D2;\n", | |
" height: 32px;\n", | |
" padding: 0 0 0 0;\n", | |
" width: 32px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-generate:hover {\n", | |
" background-color: #E2EBFA;\n", | |
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n", | |
" fill: #174EA6;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-generate {\n", | |
" background-color: #3B4455;\n", | |
" fill: #D2E3FC;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-generate:hover {\n", | |
" background-color: #434B5C;\n", | |
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n", | |
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n", | |
" fill: #FFFFFF;\n", | |
" }\n", | |
" </style>\n", | |
" <button class=\"colab-df-generate\" onclick=\"generateWithVariable('popular_movies_2024_df')\"\n", | |
" title=\"Generate code using this dataframe.\"\n", | |
" style=\"display:none;\">\n", | |
"\n", | |
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n", | |
" width=\"24px\">\n", | |
" <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n", | |
" </svg>\n", | |
" </button>\n", | |
" <script>\n", | |
" (() => {\n", | |
" const buttonEl =\n", | |
" document.querySelector('#id_0e60c248-3f0f-4649-9d07-f559ffaee47f button.colab-df-generate');\n", | |
" buttonEl.style.display =\n", | |
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n", | |
"\n", | |
" buttonEl.onclick = () => {\n", | |
" google.colab.notebook.generateWithVariable('popular_movies_2024_df');\n", | |
" }\n", | |
" })();\n", | |
" </script>\n", | |
" </div>\n", | |
"\n", | |
" </div>\n", | |
" </div>\n" | |
], | |
"application/vnd.google.colaboratory.intrinsic+json": { | |
"type": "dataframe", | |
"variable_name": "popular_movies_2024_df", | |
"summary": "{\n \"name\": \"popular_movies_2024_df\",\n \"rows\": 300,\n \"fields\": [\n {\n \"column\": \"adult\",\n \"properties\": {\n \"dtype\": \"boolean\",\n \"num_unique_values\": 1,\n \"samples\": [\n false\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"backdrop_path\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 227,\n \"samples\": [\n \"/8fNBsXpgMvqk75SPsZzTmIqSRxY.jpg\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"genre_ids\",\n \"properties\": {\n \"dtype\": \"object\",\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"id\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 214023,\n \"min\": 280180,\n \"max\": 1310259,\n \"num_unique_values\": 235,\n \"samples\": [\n 821499\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"original_language\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 1,\n \"samples\": [\n \"en\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"original_title\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 235,\n \"samples\": [\n \"The Inheritance\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"overview\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 236,\n \"samples\": [\n \"Billionaire Charles Abernathy, on the eve of his 75th birthday, invites his four estranged children back home out of fear that tonight someone \\u2013 or something \\u2013 is coming to kill him. To ensure his family will help protect him from whatever\\u2019s coming, Abernathy puts each of their inheritances on the line \\u2013 they\\u2019ll get nothing if he\\u2019s found dead by dawn.\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"popularity\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 464.32203460842084,\n \"min\": 13.865,\n \"max\": 5389.964,\n \"num_unique_values\": 235,\n \"samples\": [\n 166.209\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"poster_path\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 233,\n \"samples\": [\n \"/8aF0iAKH9MJMYAZdi0Slg77RYa2.jpg\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"release_date\",\n \"properties\": {\n \"dtype\": \"object\",\n \"num_unique_values\": 129,\n \"samples\": [\n \"2024-02-01\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"title\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 235,\n \"samples\": [\n \"The Inheritance\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"video\",\n \"properties\": {\n \"dtype\": \"boolean\",\n \"num_unique_values\": 1,\n \"samples\": [\n false\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"vote_average\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 2.8867801696225075,\n \"min\": 0.0,\n \"max\": 10.0,\n \"num_unique_values\": 133,\n \"samples\": [\n 6.5\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"vote_count\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 538,\n \"min\": 0,\n \"max\": 4849,\n \"num_unique_values\": 138,\n \"samples\": [\n 78\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" | |
} | |
}, | |
"metadata": {}, | |
"execution_count": 12 | |
} | |
], | |
"source": [ | |
"def convertJsonToDataFrame(json_data):\n", | |
" \"\"\"\n", | |
" Converts JSON data into a Pandas Dataframe\n", | |
"\n", | |
" Args:\n", | |
" Date Type - JSON: This function accepts any JSON data file as the argument for conversion.\n", | |
"\n", | |
" Returns:\n", | |
" Pandas Dataframe and print statement\n", | |
" \"\"\"\n", | |
" print('Converting JSON data to Pandas Dataframe \\n')\n", | |
" popular_movies_df = pd.json_normalize(json_data)\n", | |
" return popular_movies_df\n", | |
"\n", | |
"\n", | |
"# Assigning the Pandas Dataframe to a variable - \"popular_movies_df\"\n", | |
"popular_movies_2024_df = convertJsonToDataFrame(popular_movies_data_2024)\n", | |
"popular_movies_2024_df" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "ikZuZjomEVOq" | |
}, | |
"source": [ | |
"# 6.0 Pagination - Looping APIs with While Loops \n", | |
"* Create a function that pulls data from the popular movies endpoint with filters for English movies released in 2023. \n", | |
"* This function includes a while loop that iterates through each page and automatically stops when the last record is retrieved. \n", | |
"* Include a feature that calculates the total number pages that the API call retrieved data from and the total number of records that were retrieved.\n", | |
"* Use try/exception blocks to handle errors that could arise.\n", | |
"\n", | |
"<b>NOTE:</b> This function uses a while loop to iterate through each page to retreive data specified in the filter. This is useful when you want to pull data from an API source where the quantity of pages are unkown." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "SE7fbrT0EVOq", | |
"outputId": "d0222016-f4a4-493e-9bdc-2d56152452ee", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 1000 | |
} | |
}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"Response Code for page 1: 200\n", | |
"Rows of data retrieved: 1 \n", | |
"\n", | |
"Response Code for page 2: 200\n", | |
"Rows of data retrieved: 2 \n", | |
"\n", | |
"Response Code for page 3: 200\n", | |
"Rows of data retrieved: 6 \n", | |
"\n", | |
"Response Code for page 4: 200\n", | |
"Rows of data retrieved: 10 \n", | |
"\n", | |
"Response Code for page 5: 200\n", | |
"Rows of data retrieved: 14 \n", | |
"\n", | |
"Response Code for page 6: 200\n", | |
"Rows of data retrieved: 14 \n", | |
"\n", | |
"Response Code for page 7: 200\n", | |
"Rows of data retrieved: 14 \n", | |
"\n", | |
"Response Code for page 8: 200\n", | |
"Rows of data retrieved: 15 \n", | |
"\n", | |
"Response Code for page 9: 200\n", | |
"Rows of data retrieved: 17 \n", | |
"\n", | |
"Response Code for page 10: 200\n", | |
"Rows of data retrieved: 17 \n", | |
"\n", | |
"Response Code for page 11: 200\n", | |
"Rows of data retrieved: 22 \n", | |
"\n", | |
"Response Code for page 12: 200\n", | |
"Rows of data retrieved: 24 \n", | |
"\n", | |
"Response Code for page 13: 200\n", | |
"Rows of data retrieved: 27 \n", | |
"\n", | |
"Response Code for page 14: 200\n", | |
"Rows of data retrieved: 28 \n", | |
"\n", | |
"Response Code for page 15: 200\n", | |
"Rows of data retrieved: 30 \n", | |
"\n", | |
"Response Code for page 16: 200\n", | |
"Rows of data retrieved: 30 \n", | |
"\n", | |
"Response Code for page 17: 200\n", | |
"Rows of data retrieved: 33 \n", | |
"\n", | |
"Response Code for page 18: 200\n", | |
"Rows of data retrieved: 34 \n", | |
"\n", | |
"Response Code for page 19: 200\n", | |
"Rows of data retrieved: 35 \n", | |
"\n", | |
"Response Code for page 20: 200\n", | |
"Rows of data retrieved: 39 \n", | |
"\n", | |
"Response Code for page 21: 200\n", | |
"Rows of data retrieved: 41 \n", | |
"\n", | |
"Response Code for page 22: 200\n", | |
"Rows of data retrieved: 44 \n", | |
"\n", | |
"Response Code for page 23: 200\n", | |
"Rows of data retrieved: 45 \n", | |
"\n", | |
"Response Code for page 24: 200\n", | |
"Rows of data retrieved: 48 \n", | |
"\n", | |
"Response Code for page 25: 200\n", | |
"Rows of data retrieved: 50 \n", | |
"\n", | |
"Response Code for page 26: 200\n", | |
"Rows of data retrieved: 52 \n", | |
"\n", | |
"Response Code for page 27: 200\n", | |
"Rows of data retrieved: 56 \n", | |
"\n", | |
"Response Code for page 28: 200\n", | |
"Rows of data retrieved: 57 \n", | |
"\n", | |
"Response Code for page 29: 200\n", | |
"Rows of data retrieved: 59 \n", | |
"\n", | |
"Response Code for page 30: 200\n", | |
"Rows of data retrieved: 59 \n", | |
"\n", | |
"Response Code for page 31: 200\n", | |
"Rows of data retrieved: 59 \n", | |
"\n", | |
"Response Code for page 32: 200\n", | |
"Rows of data retrieved: 60 \n", | |
"\n", | |
"Response Code for page 33: 200\n", | |
"Rows of data retrieved: 64 \n", | |
"\n", | |
"Response Code for page 34: 200\n", | |
"Rows of data retrieved: 64 \n", | |
"\n", | |
"Response Code for page 35: 200\n", | |
"Rows of data retrieved: 65 \n", | |
"\n", | |
"Response Code for page 36: 200\n", | |
"Rows of data retrieved: 67 \n", | |
"\n", | |
"Response Code for page 37: 200\n", | |
"Rows of data retrieved: 67 \n", | |
"\n", | |
"Response Code for page 38: 200\n", | |
"Rows of data retrieved: 69 \n", | |
"\n", | |
"Response Code for page 39: 200\n", | |
"Rows of data retrieved: 72 \n", | |
"\n", | |
"Response Code for page 40: 200\n", | |
"Rows of data retrieved: 73 \n", | |
"\n", | |
"Response Code for page 41: 200\n", | |
"Rows of data retrieved: 74 \n", | |
"\n", | |
"Response Code for page 42: 200\n", | |
"Rows of data retrieved: 75 \n", | |
"\n", | |
"Response Code for page 43: 200\n", | |
"Rows of data retrieved: 77 \n", | |
"\n", | |
"Response Code for page 44: 200\n", | |
"Rows of data retrieved: 78 \n", | |
"\n", | |
"Response Code for page 45: 200\n", | |
"Rows of data retrieved: 78 \n", | |
"\n", | |
"Response Code for page 46: 200\n", | |
"Rows of data retrieved: 80 \n", | |
"\n", | |
"Response Code for page 47: 200\n", | |
"Rows of data retrieved: 81 \n", | |
"\n", | |
"Response Code for page 48: 200\n", | |
"Rows of data retrieved: 82 \n", | |
"\n", | |
"Response Code for page 49: 200\n", | |
"Rows of data retrieved: 83 \n", | |
"\n", | |
"Response Code for page 50: 200\n", | |
"Rows of data retrieved: 83 \n", | |
"\n", | |
"Response Code for page 51: 200\n", | |
"Rows of data retrieved: 85 \n", | |
"\n", | |
"Response Code for page 52: 200\n", | |
"Rows of data retrieved: 86 \n", | |
"\n", | |
"Response Code for page 53: 200\n", | |
"Rows of data retrieved: 88 \n", | |
"\n", | |
"Response Code for page 54: 200\n", | |
"Rows of data retrieved: 89 \n", | |
"\n", | |
"Response Code for page 55: 200\n", | |
"Rows of data retrieved: 90 \n", | |
"\n", | |
"Response Code for page 56: 200\n", | |
"Rows of data retrieved: 92 \n", | |
"\n", | |
"Response Code for page 57: 200\n", | |
"Rows of data retrieved: 92 \n", | |
"\n", | |
"Response Code for page 58: 200\n", | |
"Rows of data retrieved: 93 \n", | |
"\n", | |
"Response Code for page 59: 200\n", | |
"Rows of data retrieved: 95 \n", | |
"\n", | |
"Response Code for page 60: 200\n", | |
"Rows of data retrieved: 97 \n", | |
"\n", | |
"Response Code for page 61: 200\n", | |
"Rows of data retrieved: 98 \n", | |
"\n", | |
"Response Code for page 62: 200\n", | |
"Rows of data retrieved: 99 \n", | |
"\n", | |
"Response Code for page 63: 200\n", | |
"Rows of data retrieved: 99 \n", | |
"\n", | |
"Response Code for page 64: 200\n", | |
"Rows of data retrieved: 101 \n", | |
"\n", | |
"Response Code for page 65: 200\n", | |
"Rows of data retrieved: 101 \n", | |
"\n", | |
"Response Code for page 66: 200\n", | |
"Rows of data retrieved: 101 \n", | |
"\n", | |
"Response Code for page 67: 200\n", | |
"Rows of data retrieved: 101 \n", | |
"\n", | |
"Response Code for page 68: 200\n", | |
"Rows of data retrieved: 104 \n", | |
"\n", | |
"Response Code for page 69: 200\n", | |
"Rows of data retrieved: 104 \n", | |
"\n", | |
"Response Code for page 70: 200\n", | |
"Rows of data retrieved: 104 \n", | |
"\n", | |
"Response Code for page 71: 200\n", | |
"Rows of data retrieved: 106 \n", | |
"\n", | |
"Response Code for page 72: 200\n", | |
"Rows of data retrieved: 110 \n", | |
"\n", | |
"Response Code for page 73: 200\n", | |
"Rows of data retrieved: 111 \n", | |
"\n", | |
"Response Code for page 74: 200\n", | |
"Rows of data retrieved: 112 \n", | |
"\n", | |
"Response Code for page 75: 200\n", | |
"Rows of data retrieved: 112 \n", | |
"\n", | |
"Response Code for page 76: 200\n", | |
"Rows of data retrieved: 112 \n", | |
"\n", | |
"Response Code for page 77: 200\n", | |
"Rows of data retrieved: 115 \n", | |
"\n", | |
"Response Code for page 78: 200\n", | |
"Rows of data retrieved: 116 \n", | |
"\n", | |
"Response Code for page 79: 200\n", | |
"Rows of data retrieved: 118 \n", | |
"\n", | |
"Response Code for page 80: 200\n", | |
"Rows of data retrieved: 121 \n", | |
"\n", | |
"Response Code for page 81: 200\n", | |
"Rows of data retrieved: 121 \n", | |
"\n", | |
"Response Code for page 82: 200\n", | |
"Rows of data retrieved: 122 \n", | |
"\n", | |
"Response Code for page 83: 200\n", | |
"Rows of data retrieved: 122 \n", | |
"\n", | |
"Response Code for page 84: 200\n", | |
"Rows of data retrieved: 124 \n", | |
"\n", | |
"Response Code for page 85: 200\n", | |
"Rows of data retrieved: 124 \n", | |
"\n", | |
"Response Code for page 86: 200\n", | |
"Rows of data retrieved: 126 \n", | |
"\n", | |
"Response Code for page 87: 200\n", | |
"Rows of data retrieved: 126 \n", | |
"\n", | |
"Response Code for page 88: 200\n", | |
"Rows of data retrieved: 126 \n", | |
"\n", | |
"Response Code for page 89: 200\n", | |
"Rows of data retrieved: 128 \n", | |
"\n", | |
"Response Code for page 90: 200\n", | |
"Rows of data retrieved: 131 \n", | |
"\n", | |
"Response Code for page 91: 200\n", | |
"Rows of data retrieved: 131 \n", | |
"\n", | |
"Response Code for page 92: 200\n", | |
"Rows of data retrieved: 131 \n", | |
"\n", | |
"Response Code for page 93: 200\n", | |
"Rows of data retrieved: 132 \n", | |
"\n", | |
"Response Code for page 94: 200\n", | |
"Rows of data retrieved: 132 \n", | |
"\n", | |
"Response Code for page 95: 200\n", | |
"Rows of data retrieved: 134 \n", | |
"\n", | |
"Response Code for page 96: 200\n", | |
"Rows of data retrieved: 135 \n", | |
"\n", | |
"Response Code for page 97: 200\n", | |
"Rows of data retrieved: 135 \n", | |
"\n", | |
"Response Code for page 98: 200\n", | |
"Rows of data retrieved: 136 \n", | |
"\n", | |
"Response Code for page 99: 200\n", | |
"Rows of data retrieved: 136 \n", | |
"\n", | |
"Response Code for page 100: 200\n", | |
"Rows of data retrieved: 137 \n", | |
"\n", | |
"Response Code for page 101: 200\n", | |
"Rows of data retrieved: 137 \n", | |
"\n", | |
"Response Code for page 102: 200\n", | |
"Rows of data retrieved: 138 \n", | |
"\n", | |
"Response Code for page 103: 200\n", | |
"Rows of data retrieved: 138 \n", | |
"\n", | |
"Response Code for page 104: 200\n", | |
"Rows of data retrieved: 138 \n", | |
"\n", | |
"Response Code for page 105: 200\n", | |
"Rows of data retrieved: 140 \n", | |
"\n", | |
"Response Code for page 106: 200\n", | |
"Rows of data retrieved: 140 \n", | |
"\n", | |
"Response Code for page 107: 200\n", | |
"Rows of data retrieved: 140 \n", | |
"\n", | |
"Response Code for page 108: 200\n", | |
"Rows of data retrieved: 141 \n", | |
"\n", | |
"Response Code for page 109: 200\n", | |
"Rows of data retrieved: 143 \n", | |
"\n", | |
"Response Code for page 110: 200\n", | |
"Rows of data retrieved: 144 \n", | |
"\n", | |
"Response Code for page 111: 200\n", | |
"Rows of data retrieved: 144 \n", | |
"\n", | |
"Response Code for page 112: 200\n", | |
"Rows of data retrieved: 145 \n", | |
"\n", | |
"Response Code for page 113: 200\n", | |
"Rows of data retrieved: 146 \n", | |
"\n", | |
"Response Code for page 114: 200\n", | |
"Rows of data retrieved: 148 \n", | |
"\n", | |
"Response Code for page 115: 200\n", | |
"Rows of data retrieved: 150 \n", | |
"\n", | |
"Response Code for page 116: 200\n", | |
"Rows of data retrieved: 150 \n", | |
"\n", | |
"Response Code for page 117: 200\n", | |
"Rows of data retrieved: 151 \n", | |
"\n", | |
"Response Code for page 118: 200\n", | |
"Rows of data retrieved: 153 \n", | |
"\n", | |
"Response Code for page 119: 200\n", | |
"Rows of data retrieved: 153 \n", | |
"\n", | |
"Response Code for page 120: 200\n", | |
"Rows of data retrieved: 155 \n", | |
"\n", | |
"Response Code for page 121: 200\n", | |
"Rows of data retrieved: 157 \n", | |
"\n", | |
"Response Code for page 122: 200\n", | |
"Rows of data retrieved: 157 \n", | |
"\n", | |
"Response Code for page 123: 200\n", | |
"Rows of data retrieved: 158 \n", | |
"\n", | |
"Response Code for page 124: 200\n", | |
"Rows of data retrieved: 158 \n", | |
"\n", | |
"Response Code for page 125: 200\n", | |
"Rows of data retrieved: 159 \n", | |
"\n", | |
"Response Code for page 126: 200\n", | |
"Rows of data retrieved: 161 \n", | |
"\n", | |
"Response Code for page 127: 200\n", | |
"Rows of data retrieved: 163 \n", | |
"\n", | |
"Response Code for page 128: 200\n", | |
"Rows of data retrieved: 163 \n", | |
"\n", | |
"Response Code for page 129: 200\n", | |
"Rows of data retrieved: 164 \n", | |
"\n", | |
"Response Code for page 130: 200\n", | |
"Rows of data retrieved: 164 \n", | |
"\n", | |
"Response Code for page 131: 200\n", | |
"Rows of data retrieved: 166 \n", | |
"\n", | |
"Response Code for page 132: 200\n", | |
"Rows of data retrieved: 167 \n", | |
"\n", | |
"Response Code for page 133: 200\n", | |
"Rows of data retrieved: 169 \n", | |
"\n", | |
"Response Code for page 134: 200\n", | |
"Rows of data retrieved: 170 \n", | |
"\n", | |
"Response Code for page 135: 200\n", | |
"Rows of data retrieved: 171 \n", | |
"\n", | |
"Response Code for page 136: 200\n", | |
"Rows of data retrieved: 172 \n", | |
"\n", | |
"Response Code for page 137: 200\n", | |
"Rows of data retrieved: 172 \n", | |
"\n", | |
"Response Code for page 138: 200\n", | |
"Rows of data retrieved: 173 \n", | |
"\n", | |
"Response Code for page 139: 200\n", | |
"Rows of data retrieved: 176 \n", | |
"\n", | |
"Response Code for page 140: 200\n", | |
"Rows of data retrieved: 176 \n", | |
"\n", | |
"Response Code for page 141: 200\n", | |
"Rows of data retrieved: 177 \n", | |
"\n", | |
"Response Code for page 142: 200\n", | |
"Rows of data retrieved: 179 \n", | |
"\n", | |
"Response Code for page 143: 200\n", | |
"Rows of data retrieved: 179 \n", | |
"\n", | |
"Response Code for page 144: 200\n", | |
"Rows of data retrieved: 181 \n", | |
"\n", | |
"Response Code for page 145: 200\n", | |
"Rows of data retrieved: 181 \n", | |
"\n", | |
"Response Code for page 146: 200\n", | |
"Rows of data retrieved: 182 \n", | |
"\n", | |
"Response Code for page 147: 200\n", | |
"Rows of data retrieved: 182 \n", | |
"\n", | |
"Response Code for page 148: 200\n", | |
"Rows of data retrieved: 182 \n", | |
"\n", | |
"Response Code for page 149: 200\n", | |
"Rows of data retrieved: 182 \n", | |
"\n", | |
"Response Code for page 150: 200\n", | |
"Rows of data retrieved: 184 \n", | |
"\n", | |
"Response Code for page 151: 200\n", | |
"Rows of data retrieved: 185 \n", | |
"\n", | |
"Response Code for page 152: 200\n", | |
"Rows of data retrieved: 187 \n", | |
"\n", | |
"Response Code for page 153: 200\n", | |
"Rows of data retrieved: 188 \n", | |
"\n", | |
"Response Code for page 154: 200\n", | |
"Rows of data retrieved: 188 \n", | |
"\n", | |
"Response Code for page 155: 200\n", | |
"Rows of data retrieved: 188 \n", | |
"\n", | |
"Response Code for page 156: 200\n", | |
"Rows of data retrieved: 189 \n", | |
"\n", | |
"Response Code for page 157: 200\n", | |
"Rows of data retrieved: 190 \n", | |
"\n", | |
"Response Code for page 158: 200\n", | |
"Rows of data retrieved: 191 \n", | |
"\n", | |
"Response Code for page 159: 200\n", | |
"Rows of data retrieved: 192 \n", | |
"\n", | |
"Response Code for page 160: 200\n", | |
"Rows of data retrieved: 192 \n", | |
"\n", | |
"Response Code for page 161: 200\n", | |
"Rows of data retrieved: 193 \n", | |
"\n", | |
"Response Code for page 162: 200\n", | |
"Rows of data retrieved: 194 \n", | |
"\n", | |
"Response Code for page 163: 200\n", | |
"Rows of data retrieved: 194 \n", | |
"\n", | |
"Response Code for page 164: 200\n", | |
"Rows of data retrieved: 197 \n", | |
"\n", | |
"Response Code for page 165: 200\n", | |
"Rows of data retrieved: 198 \n", | |
"\n", | |
"Response Code for page 166: 200\n", | |
"Rows of data retrieved: 199 \n", | |
"\n", | |
"Response Code for page 167: 200\n", | |
"Rows of data retrieved: 199 \n", | |
"\n", | |
"Response Code for page 168: 200\n", | |
"Rows of data retrieved: 200 \n", | |
"\n", | |
"Response Code for page 169: 200\n", | |
"Rows of data retrieved: 201 \n", | |
"\n", | |
"Response Code for page 170: 200\n", | |
"Rows of data retrieved: 203 \n", | |
"\n", | |
"Response Code for page 171: 200\n", | |
"Rows of data retrieved: 204 \n", | |
"\n", | |
"Response Code for page 172: 200\n", | |
"Rows of data retrieved: 208 \n", | |
"\n", | |
"Response Code for page 173: 200\n", | |
"Rows of data retrieved: 212 \n", | |
"\n", | |
"Response Code for page 174: 200\n", | |
"Rows of data retrieved: 214 \n", | |
"\n", | |
"Response Code for page 175: 200\n", | |
"Rows of data retrieved: 214 \n", | |
"\n", | |
"Response Code for page 176: 200\n", | |
"Rows of data retrieved: 214 \n", | |
"\n", | |
"Response Code for page 177: 200\n", | |
"Rows of data retrieved: 215 \n", | |
"\n", | |
"Response Code for page 178: 200\n", | |
"Rows of data retrieved: 215 \n", | |
"\n", | |
"Response Code for page 179: 200\n", | |
"Rows of data retrieved: 216 \n", | |
"\n", | |
"Response Code for page 180: 200\n", | |
"Rows of data retrieved: 216 \n", | |
"\n", | |
"Response Code for page 181: 200\n", | |
"Rows of data retrieved: 216 \n", | |
"\n", | |
"Response Code for page 182: 200\n", | |
"Rows of data retrieved: 217 \n", | |
"\n", | |
"Response Code for page 183: 200\n", | |
"Rows of data retrieved: 218 \n", | |
"\n", | |
"Response Code for page 184: 200\n", | |
"Rows of data retrieved: 218 \n", | |
"\n", | |
"Response Code for page 185: 200\n", | |
"Rows of data retrieved: 220 \n", | |
"\n", | |
"Response Code for page 186: 200\n", | |
"Rows of data retrieved: 220 \n", | |
"\n", | |
"Response Code for page 187: 200\n", | |
"Rows of data retrieved: 221 \n", | |
"\n", | |
"Response Code for page 188: 200\n", | |
"Rows of data retrieved: 222 \n", | |
"\n", | |
"Response Code for page 189: 200\n", | |
"Rows of data retrieved: 224 \n", | |
"\n", | |
"Response Code for page 190: 200\n", | |
"Rows of data retrieved: 224 \n", | |
"\n", | |
"Response Code for page 191: 200\n", | |
"Rows of data retrieved: 224 \n", | |
"\n", | |
"Response Code for page 192: 200\n", | |
"Rows of data retrieved: 224 \n", | |
"\n", | |
"Response Code for page 193: 200\n", | |
"Rows of data retrieved: 228 \n", | |
"\n", | |
"Response Code for page 194: 200\n", | |
"Rows of data retrieved: 231 \n", | |
"\n", | |
"Response Code for page 195: 200\n", | |
"Rows of data retrieved: 232 \n", | |
"\n", | |
"Response Code for page 196: 200\n", | |
"Rows of data retrieved: 233 \n", | |
"\n", | |
"Response Code for page 197: 200\n", | |
"Rows of data retrieved: 234 \n", | |
"\n", | |
"Response Code for page 198: 200\n", | |
"Rows of data retrieved: 234 \n", | |
"\n", | |
"Response Code for page 199: 200\n", | |
"Rows of data retrieved: 234 \n", | |
"\n", | |
"Response Code for page 200: 200\n", | |
"Rows of data retrieved: 234 \n", | |
"\n", | |
"Response Code for page 201: 200\n", | |
"Rows of data retrieved: 236 \n", | |
"\n", | |
"Response Code for page 202: 200\n", | |
"Rows of data retrieved: 239 \n", | |
"\n", | |
"Response Code for page 203: 200\n", | |
"Rows of data retrieved: 240 \n", | |
"\n", | |
"Response Code for page 204: 200\n", | |
"Rows of data retrieved: 241 \n", | |
"\n", | |
"Response Code for page 205: 200\n", | |
"Rows of data retrieved: 242 \n", | |
"\n", | |
"Response Code for page 206: 200\n", | |
"Rows of data retrieved: 243 \n", | |
"\n", | |
"Response Code for page 207: 200\n", | |
"Rows of data retrieved: 243 \n", | |
"\n", | |
"Response Code for page 208: 200\n", | |
"Rows of data retrieved: 245 \n", | |
"\n", | |
"Response Code for page 209: 200\n", | |
"Rows of data retrieved: 247 \n", | |
"\n", | |
"Response Code for page 210: 200\n", | |
"Rows of data retrieved: 249 \n", | |
"\n", | |
"Response Code for page 211: 200\n", | |
"Rows of data retrieved: 249 \n", | |
"\n", | |
"Response Code for page 212: 200\n", | |
"Rows of data retrieved: 250 \n", | |
"\n", | |
"Response Code for page 213: 200\n", | |
"Rows of data retrieved: 251 \n", | |
"\n", | |
"Response Code for page 214: 200\n", | |
"Rows of data retrieved: 251 \n", | |
"\n", | |
"Response Code for page 215: 200\n", | |
"Rows of data retrieved: 251 \n", | |
"\n", | |
"Response Code for page 216: 200\n", | |
"Rows of data retrieved: 252 \n", | |
"\n", | |
"Response Code for page 217: 200\n", | |
"Rows of data retrieved: 254 \n", | |
"\n", | |
"Response Code for page 218: 200\n", | |
"Rows of data retrieved: 254 \n", | |
"\n", | |
"Response Code for page 219: 200\n", | |
"Rows of data retrieved: 254 \n", | |
"\n", | |
"Response Code for page 220: 200\n", | |
"Rows of data retrieved: 254 \n", | |
"\n", | |
"Response Code for page 221: 200\n", | |
"Rows of data retrieved: 254 \n", | |
"\n", | |
"Response Code for page 222: 200\n", | |
"Rows of data retrieved: 254 \n", | |
"\n", | |
"Response Code for page 223: 200\n", | |
"Rows of data retrieved: 255 \n", | |
"\n", | |
"Response Code for page 224: 200\n", | |
"Rows of data retrieved: 256 \n", | |
"\n", | |
"Response Code for page 225: 200\n", | |
"Rows of data retrieved: 257 \n", | |
"\n", | |
"Response Code for page 226: 200\n", | |
"Rows of data retrieved: 259 \n", | |
"\n", | |
"Response Code for page 227: 200\n", | |
"Rows of data retrieved: 259 \n", | |
"\n", | |
"Response Code for page 228: 200\n", | |
"Rows of data retrieved: 259 \n", | |
"\n", | |
"Response Code for page 229: 200\n", | |
"Rows of data retrieved: 259 \n", | |
"\n", | |
"Response Code for page 230: 200\n", | |
"Rows of data retrieved: 259 \n", | |
"\n", | |
"Response Code for page 231: 200\n", | |
"Rows of data retrieved: 261 \n", | |
"\n", | |
"Response Code for page 232: 200\n", | |
"Rows of data retrieved: 261 \n", | |
"\n", | |
"Response Code for page 233: 200\n", | |
"Rows of data retrieved: 262 \n", | |
"\n", | |
"Response Code for page 234: 200\n", | |
"Rows of data retrieved: 264 \n", | |
"\n", | |
"Response Code for page 235: 200\n", | |
"Rows of data retrieved: 264 \n", | |
"\n", | |
"Response Code for page 236: 200\n", | |
"Rows of data retrieved: 265 \n", | |
"\n", | |
"Response Code for page 237: 200\n", | |
"Rows of data retrieved: 265 \n", | |
"\n", | |
"Response Code for page 238: 200\n", | |
"Rows of data retrieved: 266 \n", | |
"\n", | |
"Response Code for page 239: 200\n", | |
"Rows of data retrieved: 267 \n", | |
"\n", | |
"Response Code for page 240: 200\n", | |
"Rows of data retrieved: 268 \n", | |
"\n", | |
"Response Code for page 241: 200\n", | |
"Rows of data retrieved: 271 \n", | |
"\n", | |
"Response Code for page 242: 200\n", | |
"Rows of data retrieved: 274 \n", | |
"\n", | |
"Response Code for page 243: 200\n", | |
"Rows of data retrieved: 277 \n", | |
"\n", | |
"Response Code for page 244: 200\n", | |
"Rows of data retrieved: 279 \n", | |
"\n", | |
"Response Code for page 245: 200\n", | |
"Rows of data retrieved: 279 \n", | |
"\n", | |
"Response Code for page 246: 200\n", | |
"Rows of data retrieved: 279 \n", | |
"\n", | |
"Response Code for page 247: 200\n", | |
"Rows of data retrieved: 279 \n", | |
"\n", | |
"Response Code for page 248: 200\n", | |
"Rows of data retrieved: 279 \n", | |
"\n", | |
"Response Code for page 249: 200\n", | |
"Rows of data retrieved: 279 \n", | |
"\n", | |
"Response Code for page 250: 200\n", | |
"Rows of data retrieved: 279 \n", | |
"\n", | |
"Response Code for page 251: 200\n", | |
"Rows of data retrieved: 281 \n", | |
"\n", | |
"Response Code for page 252: 200\n", | |
"Rows of data retrieved: 281 \n", | |
"\n", | |
"Response Code for page 253: 200\n", | |
"Rows of data retrieved: 282 \n", | |
"\n", | |
"Response Code for page 254: 200\n", | |
"Rows of data retrieved: 282 \n", | |
"\n", | |
"Response Code for page 255: 200\n", | |
"Rows of data retrieved: 283 \n", | |
"\n", | |
"Response Code for page 256: 200\n", | |
"Rows of data retrieved: 284 \n", | |
"\n", | |
"Response Code for page 257: 200\n", | |
"Rows of data retrieved: 285 \n", | |
"\n", | |
"Response Code for page 258: 200\n", | |
"Rows of data retrieved: 286 \n", | |
"\n", | |
"Response Code for page 259: 200\n", | |
"Rows of data retrieved: 286 \n", | |
"\n", | |
"Response Code for page 260: 200\n", | |
"Rows of data retrieved: 287 \n", | |
"\n", | |
"Response Code for page 261: 200\n", | |
"Rows of data retrieved: 289 \n", | |
"\n", | |
"Response Code for page 262: 200\n", | |
"Rows of data retrieved: 289 \n", | |
"\n", | |
"Response Code for page 263: 200\n", | |
"Rows of data retrieved: 290 \n", | |
"\n", | |
"Response Code for page 264: 200\n", | |
"Rows of data retrieved: 291 \n", | |
"\n", | |
"Response Code for page 265: 200\n", | |
"Rows of data retrieved: 292 \n", | |
"\n", | |
"Response Code for page 266: 200\n", | |
"Rows of data retrieved: 292 \n", | |
"\n", | |
"Response Code for page 267: 200\n", | |
"Rows of data retrieved: 293 \n", | |
"\n", | |
"Response Code for page 268: 200\n", | |
"Rows of data retrieved: 293 \n", | |
"\n", | |
"Response Code for page 269: 200\n", | |
"Rows of data retrieved: 295 \n", | |
"\n", | |
"Response Code for page 270: 200\n", | |
"Rows of data retrieved: 296 \n", | |
"\n", | |
"Response Code for page 271: 200\n", | |
"Rows of data retrieved: 296 \n", | |
"\n", | |
"Response Code for page 272: 200\n", | |
"Rows of data retrieved: 296 \n", | |
"\n", | |
"Response Code for page 273: 200\n", | |
"Rows of data retrieved: 299 \n", | |
"\n", | |
"Response Code for page 274: 200\n", | |
"Rows of data retrieved: 300 \n", | |
"\n", | |
"Response Code for page 275: 200\n", | |
"Rows of data retrieved: 300 \n", | |
"\n", | |
"Response Code for page 276: 200\n", | |
"Rows of data retrieved: 301 \n", | |
"\n", | |
"Response Code for page 277: 200\n", | |
"Rows of data retrieved: 303 \n", | |
"\n", | |
"Response Code for page 278: 200\n", | |
"Rows of data retrieved: 304 \n", | |
"\n", | |
"Response Code for page 279: 200\n", | |
"Rows of data retrieved: 305 \n", | |
"\n", | |
"Response Code for page 280: 200\n", | |
"Rows of data retrieved: 305 \n", | |
"\n", | |
"Response Code for page 281: 200\n", | |
"Rows of data retrieved: 305 \n", | |
"\n", | |
"Response Code for page 282: 200\n", | |
"Rows of data retrieved: 305 \n", | |
"\n", | |
"Response Code for page 283: 200\n", | |
"Rows of data retrieved: 305 \n", | |
"\n", | |
"Response Code for page 284: 200\n", | |
"Rows of data retrieved: 306 \n", | |
"\n", | |
"Response Code for page 285: 200\n", | |
"Rows of data retrieved: 306 \n", | |
"\n", | |
"Response Code for page 286: 200\n", | |
"Rows of data retrieved: 307 \n", | |
"\n", | |
"Response Code for page 287: 200\n", | |
"Rows of data retrieved: 307 \n", | |
"\n", | |
"Response Code for page 288: 200\n", | |
"Rows of data retrieved: 307 \n", | |
"\n", | |
"Response Code for page 289: 200\n", | |
"Rows of data retrieved: 307 \n", | |
"\n", | |
"Response Code for page 290: 200\n", | |
"Rows of data retrieved: 307 \n", | |
"\n", | |
"Response Code for page 291: 200\n", | |
"Rows of data retrieved: 307 \n", | |
"\n", | |
"Response Code for page 292: 200\n", | |
"Rows of data retrieved: 307 \n", | |
"\n", | |
"Response Code for page 293: 200\n", | |
"Rows of data retrieved: 307 \n", | |
"\n", | |
"Response Code for page 294: 200\n", | |
"Rows of data retrieved: 308 \n", | |
"\n", | |
"Response Code for page 295: 200\n", | |
"Rows of data retrieved: 308 \n", | |
"\n", | |
"Response Code for page 296: 200\n", | |
"Rows of data retrieved: 308 \n", | |
"\n", | |
"Response Code for page 297: 200\n", | |
"Rows of data retrieved: 309 \n", | |
"\n", | |
"Response Code for page 298: 200\n", | |
"Rows of data retrieved: 309 \n", | |
"\n", | |
"Response Code for page 299: 200\n", | |
"Rows of data retrieved: 309 \n", | |
"\n", | |
"Response Code for page 300: 200\n", | |
"Rows of data retrieved: 309 \n", | |
"\n", | |
"Response Code for page 301: 200\n", | |
"Rows of data retrieved: 309 \n", | |
"\n", | |
"Response Code for page 302: 200\n", | |
"Rows of data retrieved: 309 \n", | |
"\n", | |
"Response Code for page 303: 200\n", | |
"Rows of data retrieved: 312 \n", | |
"\n", | |
"Response Code for page 304: 200\n", | |
"Rows of data retrieved: 312 \n", | |
"\n", | |
"Response Code for page 305: 200\n", | |
"Rows of data retrieved: 312 \n", | |
"\n", | |
"Response Code for page 306: 200\n", | |
"Rows of data retrieved: 313 \n", | |
"\n", | |
"Response Code for page 307: 200\n", | |
"Rows of data retrieved: 315 \n", | |
"\n", | |
"Response Code for page 308: 200\n", | |
"Rows of data retrieved: 315 \n", | |
"\n", | |
"Response Code for page 309: 200\n", | |
"Rows of data retrieved: 316 \n", | |
"\n", | |
"Response Code for page 310: 200\n", | |
"Rows of data retrieved: 316 \n", | |
"\n", | |
"Response Code for page 311: 200\n", | |
"Rows of data retrieved: 316 \n", | |
"\n", | |
"Response Code for page 312: 200\n", | |
"Rows of data retrieved: 317 \n", | |
"\n", | |
"Response Code for page 313: 200\n", | |
"Rows of data retrieved: 318 \n", | |
"\n", | |
"Response Code for page 314: 200\n", | |
"Rows of data retrieved: 319 \n", | |
"\n", | |
"Response Code for page 315: 200\n", | |
"Rows of data retrieved: 319 \n", | |
"\n", | |
"Response Code for page 316: 200\n", | |
"Rows of data retrieved: 320 \n", | |
"\n", | |
"Response Code for page 317: 200\n", | |
"Rows of data retrieved: 320 \n", | |
"\n", | |
"Response Code for page 318: 200\n", | |
"Rows of data retrieved: 320 \n", | |
"\n", | |
"Response Code for page 319: 200\n", | |
"Rows of data retrieved: 321 \n", | |
"\n", | |
"Response Code for page 320: 200\n", | |
"Rows of data retrieved: 321 \n", | |
"\n", | |
"Response Code for page 321: 200\n", | |
"Rows of data retrieved: 321 \n", | |
"\n", | |
"Response Code for page 322: 200\n", | |
"Rows of data retrieved: 321 \n", | |
"\n", | |
"Response Code for page 323: 200\n", | |
"Rows of data retrieved: 322 \n", | |
"\n", | |
"Response Code for page 324: 200\n", | |
"Rows of data retrieved: 322 \n", | |
"\n", | |
"Response Code for page 325: 200\n", | |
"Rows of data retrieved: 322 \n", | |
"\n", | |
"Response Code for page 326: 200\n", | |
"Rows of data retrieved: 323 \n", | |
"\n", | |
"Response Code for page 327: 200\n", | |
"Rows of data retrieved: 323 \n", | |
"\n", | |
"Response Code for page 328: 200\n", | |
"Rows of data retrieved: 323 \n", | |
"\n", | |
"Response Code for page 329: 200\n", | |
"Rows of data retrieved: 325 \n", | |
"\n", | |
"Response Code for page 330: 200\n", | |
"Rows of data retrieved: 326 \n", | |
"\n", | |
"Response Code for page 331: 200\n", | |
"Rows of data retrieved: 329 \n", | |
"\n", | |
"Response Code for page 332: 200\n", | |
"Rows of data retrieved: 330 \n", | |
"\n", | |
"Response Code for page 333: 200\n", | |
"Rows of data retrieved: 333 \n", | |
"\n", | |
"Response Code for page 334: 200\n", | |
"Rows of data retrieved: 336 \n", | |
"\n", | |
"Response Code for page 335: 200\n", | |
"Rows of data retrieved: 337 \n", | |
"\n", | |
"Response Code for page 336: 200\n", | |
"Rows of data retrieved: 337 \n", | |
"\n", | |
"Response Code for page 337: 200\n", | |
"Rows of data retrieved: 337 \n", | |
"\n", | |
"Response Code for page 338: 200\n", | |
"Rows of data retrieved: 337 \n", | |
"\n", | |
"Response Code for page 339: 200\n", | |
"Rows of data retrieved: 337 \n", | |
"\n", | |
"Response Code for page 340: 200\n", | |
"Rows of data retrieved: 337 \n", | |
"\n", | |
"Response Code for page 341: 200\n", | |
"Rows of data retrieved: 338 \n", | |
"\n", | |
"Response Code for page 342: 200\n", | |
"Rows of data retrieved: 338 \n", | |
"\n", | |
"Response Code for page 343: 200\n", | |
"Rows of data retrieved: 339 \n", | |
"\n", | |
"Response Code for page 344: 200\n", | |
"Rows of data retrieved: 340 \n", | |
"\n", | |
"Response Code for page 345: 200\n", | |
"Rows of data retrieved: 341 \n", | |
"\n", | |
"Response Code for page 346: 200\n", | |
"Rows of data retrieved: 341 \n", | |
"\n", | |
"Response Code for page 347: 200\n", | |
"Rows of data retrieved: 342 \n", | |
"\n", | |
"Response Code for page 348: 200\n", | |
"Rows of data retrieved: 343 \n", | |
"\n", | |
"Response Code for page 349: 200\n", | |
"Rows of data retrieved: 343 \n", | |
"\n", | |
"Response Code for page 350: 200\n", | |
"Rows of data retrieved: 344 \n", | |
"\n", | |
"Response Code for page 351: 200\n", | |
"Rows of data retrieved: 344 \n", | |
"\n", | |
"Response Code for page 352: 200\n", | |
"Rows of data retrieved: 345 \n", | |
"\n", | |
"Response Code for page 353: 200\n", | |
"Rows of data retrieved: 345 \n", | |
"\n", | |
"Response Code for page 354: 200\n", | |
"Rows of data retrieved: 345 \n", | |
"\n", | |
"Response Code for page 355: 200\n", | |
"Rows of data retrieved: 345 \n", | |
"\n", | |
"Response Code for page 356: 200\n", | |
"Rows of data retrieved: 346 \n", | |
"\n", | |
"Response Code for page 357: 200\n", | |
"Rows of data retrieved: 347 \n", | |
"\n", | |
"Response Code for page 358: 200\n", | |
"Rows of data retrieved: 348 \n", | |
"\n", | |
"Response Code for page 359: 200\n", | |
"Rows of data retrieved: 349 \n", | |
"\n", | |
"Response Code for page 360: 200\n", | |
"Rows of data retrieved: 349 \n", | |
"\n", | |
"Response Code for page 361: 200\n", | |
"Rows of data retrieved: 349 \n", | |
"\n", | |
"Response Code for page 362: 200\n", | |
"Rows of data retrieved: 349 \n", | |
"\n", | |
"Response Code for page 363: 200\n", | |
"Rows of data retrieved: 349 \n", | |
"\n", | |
"Response Code for page 364: 200\n", | |
"Rows of data retrieved: 349 \n", | |
"\n", | |
"Response Code for page 365: 200\n", | |
"Rows of data retrieved: 349 \n", | |
"\n", | |
"Response Code for page 366: 200\n", | |
"Rows of data retrieved: 349 \n", | |
"\n", | |
"Response Code for page 367: 200\n", | |
"Rows of data retrieved: 349 \n", | |
"\n", | |
"Response Code for page 368: 200\n", | |
"Rows of data retrieved: 350 \n", | |
"\n", | |
"Response Code for page 369: 200\n", | |
"Rows of data retrieved: 351 \n", | |
"\n", | |
"Response Code for page 370: 200\n", | |
"Rows of data retrieved: 352 \n", | |
"\n", | |
"Response Code for page 371: 200\n", | |
"Rows of data retrieved: 352 \n", | |
"\n", | |
"Response Code for page 372: 200\n", | |
"Rows of data retrieved: 354 \n", | |
"\n", | |
"Response Code for page 373: 200\n", | |
"Rows of data retrieved: 354 \n", | |
"\n", | |
"Response Code for page 374: 200\n", | |
"Rows of data retrieved: 354 \n", | |
"\n", | |
"Response Code for page 375: 200\n", | |
"Rows of data retrieved: 356 \n", | |
"\n", | |
"Response Code for page 376: 200\n", | |
"Rows of data retrieved: 356 \n", | |
"\n", | |
"Response Code for page 377: 200\n", | |
"Rows of data retrieved: 356 \n", | |
"\n", | |
"Response Code for page 378: 200\n", | |
"Rows of data retrieved: 356 \n", | |
"\n", | |
"Response Code for page 379: 200\n", | |
"Rows of data retrieved: 356 \n", | |
"\n", | |
"Response Code for page 380: 200\n", | |
"Rows of data retrieved: 356 \n", | |
"\n", | |
"Response Code for page 381: 200\n", | |
"Rows of data retrieved: 356 \n", | |
"\n", | |
"Response Code for page 382: 200\n", | |
"Rows of data retrieved: 356 \n", | |
"\n", | |
"Response Code for page 383: 200\n", | |
"Rows of data retrieved: 356 \n", | |
"\n", | |
"Response Code for page 384: 200\n", | |
"Rows of data retrieved: 357 \n", | |
"\n", | |
"Response Code for page 385: 200\n", | |
"Rows of data retrieved: 358 \n", | |
"\n", | |
"Response Code for page 386: 200\n", | |
"Rows of data retrieved: 359 \n", | |
"\n", | |
"Response Code for page 387: 200\n", | |
"Rows of data retrieved: 360 \n", | |
"\n", | |
"Response Code for page 388: 200\n", | |
"Rows of data retrieved: 360 \n", | |
"\n", | |
"Response Code for page 389: 200\n", | |
"Rows of data retrieved: 361 \n", | |
"\n", | |
"Response Code for page 390: 200\n", | |
"Rows of data retrieved: 363 \n", | |
"\n", | |
"Response Code for page 391: 200\n", | |
"Rows of data retrieved: 365 \n", | |
"\n", | |
"Response Code for page 392: 200\n", | |
"Rows of data retrieved: 366 \n", | |
"\n", | |
"Response Code for page 393: 200\n", | |
"Rows of data retrieved: 366 \n", | |
"\n", | |
"Response Code for page 394: 200\n", | |
"Rows of data retrieved: 366 \n", | |
"\n", | |
"Response Code for page 395: 200\n", | |
"Rows of data retrieved: 366 \n", | |
"\n", | |
"Response Code for page 396: 200\n", | |
"Rows of data retrieved: 367 \n", | |
"\n", | |
"Response Code for page 397: 200\n", | |
"Rows of data retrieved: 367 \n", | |
"\n", | |
"Response Code for page 398: 200\n", | |
"Rows of data retrieved: 369 \n", | |
"\n", | |
"Response Code for page 399: 200\n", | |
"Rows of data retrieved: 369 \n", | |
"\n", | |
"Response Code for page 400: 200\n", | |
"Rows of data retrieved: 370 \n", | |
"\n", | |
"Response Code for page 401: 200\n", | |
"Rows of data retrieved: 370 \n", | |
"\n", | |
"Response Code for page 402: 200\n", | |
"Rows of data retrieved: 371 \n", | |
"\n", | |
"Response Code for page 403: 200\n", | |
"Rows of data retrieved: 372 \n", | |
"\n", | |
"Response Code for page 404: 200\n", | |
"Rows of data retrieved: 372 \n", | |
"\n", | |
"Response Code for page 405: 200\n", | |
"Rows of data retrieved: 374 \n", | |
"\n", | |
"Response Code for page 406: 200\n", | |
"Rows of data retrieved: 374 \n", | |
"\n", | |
"Response Code for page 407: 200\n", | |
"Rows of data retrieved: 374 \n", | |
"\n", | |
"Response Code for page 408: 200\n", | |
"Rows of data retrieved: 376 \n", | |
"\n", | |
"Response Code for page 409: 200\n", | |
"Rows of data retrieved: 376 \n", | |
"\n", | |
"Response Code for page 410: 200\n", | |
"Rows of data retrieved: 376 \n", | |
"\n", | |
"Response Code for page 411: 200\n", | |
"Rows of data retrieved: 377 \n", | |
"\n", | |
"Response Code for page 412: 200\n", | |
"Rows of data retrieved: 379 \n", | |
"\n", | |
"Response Code for page 413: 200\n", | |
"Rows of data retrieved: 379 \n", | |
"\n", | |
"Response Code for page 414: 200\n", | |
"Rows of data retrieved: 379 \n", | |
"\n", | |
"Response Code for page 415: 200\n", | |
"Rows of data retrieved: 379 \n", | |
"\n", | |
"Response Code for page 416: 200\n", | |
"Rows of data retrieved: 381 \n", | |
"\n", | |
"Response Code for page 417: 200\n", | |
"Rows of data retrieved: 381 \n", | |
"\n", | |
"Response Code for page 418: 200\n", | |
"Rows of data retrieved: 382 \n", | |
"\n", | |
"Response Code for page 419: 200\n", | |
"Rows of data retrieved: 384 \n", | |
"\n", | |
"Response Code for page 420: 200\n", | |
"Rows of data retrieved: 384 \n", | |
"\n", | |
"Response Code for page 421: 200\n", | |
"Rows of data retrieved: 385 \n", | |
"\n", | |
"Response Code for page 422: 200\n", | |
"Rows of data retrieved: 386 \n", | |
"\n", | |
"Response Code for page 423: 200\n", | |
"Rows of data retrieved: 386 \n", | |
"\n", | |
"Response Code for page 424: 200\n", | |
"Rows of data retrieved: 387 \n", | |
"\n", | |
"Response Code for page 425: 200\n", | |
"Rows of data retrieved: 387 \n", | |
"\n", | |
"Response Code for page 426: 200\n", | |
"Rows of data retrieved: 387 \n", | |
"\n", | |
"Response Code for page 427: 200\n", | |
"Rows of data retrieved: 389 \n", | |
"\n", | |
"Response Code for page 428: 200\n", | |
"Rows of data retrieved: 390 \n", | |
"\n", | |
"Response Code for page 429: 200\n", | |
"Rows of data retrieved: 390 \n", | |
"\n", | |
"Response Code for page 430: 200\n", | |
"Rows of data retrieved: 390 \n", | |
"\n", | |
"Response Code for page 431: 200\n", | |
"Rows of data retrieved: 390 \n", | |
"\n", | |
"Response Code for page 432: 200\n", | |
"Rows of data retrieved: 390 \n", | |
"\n", | |
"Response Code for page 433: 200\n", | |
"Rows of data retrieved: 390 \n", | |
"\n", | |
"Response Code for page 434: 200\n", | |
"Rows of data retrieved: 390 \n", | |
"\n", | |
"Response Code for page 435: 200\n", | |
"Rows of data retrieved: 391 \n", | |
"\n", | |
"Response Code for page 436: 200\n", | |
"Rows of data retrieved: 391 \n", | |
"\n", | |
"Response Code for page 437: 200\n", | |
"Rows of data retrieved: 391 \n", | |
"\n", | |
"Response Code for page 438: 200\n", | |
"Rows of data retrieved: 392 \n", | |
"\n", | |
"Response Code for page 439: 200\n", | |
"Rows of data retrieved: 392 \n", | |
"\n", | |
"Response Code for page 440: 200\n", | |
"Rows of data retrieved: 392 \n", | |
"\n", | |
"Response Code for page 441: 200\n", | |
"Rows of data retrieved: 393 \n", | |
"\n", | |
"Response Code for page 442: 200\n", | |
"Rows of data retrieved: 393 \n", | |
"\n", | |
"Response Code for page 443: 200\n", | |
"Rows of data retrieved: 393 \n", | |
"\n", | |
"Response Code for page 444: 200\n", | |
"Rows of data retrieved: 393 \n", | |
"\n", | |
"Response Code for page 445: 200\n", | |
"Rows of data retrieved: 393 \n", | |
"\n", | |
"Response Code for page 446: 200\n", | |
"Rows of data retrieved: 393 \n", | |
"\n", | |
"Response Code for page 447: 200\n", | |
"Rows of data retrieved: 395 \n", | |
"\n", | |
"Response Code for page 448: 200\n", | |
"Rows of data retrieved: 395 \n", | |
"\n", | |
"Response Code for page 449: 200\n", | |
"Rows of data retrieved: 395 \n", | |
"\n", | |
"Response Code for page 450: 200\n", | |
"Rows of data retrieved: 395 \n", | |
"\n", | |
"Response Code for page 451: 200\n", | |
"Rows of data retrieved: 397 \n", | |
"\n", | |
"Response Code for page 452: 200\n", | |
"Rows of data retrieved: 397 \n", | |
"\n", | |
"Response Code for page 453: 200\n", | |
"Rows of data retrieved: 399 \n", | |
"\n", | |
"Response Code for page 454: 200\n", | |
"Rows of data retrieved: 400 \n", | |
"\n", | |
"Response Code for page 455: 200\n", | |
"Rows of data retrieved: 400 \n", | |
"\n", | |
"Response Code for page 456: 200\n", | |
"Rows of data retrieved: 401 \n", | |
"\n", | |
"Response Code for page 457: 200\n", | |
"Rows of data retrieved: 402 \n", | |
"\n", | |
"Response Code for page 458: 200\n", | |
"Rows of data retrieved: 403 \n", | |
"\n", | |
"Response Code for page 459: 200\n", | |
"Rows of data retrieved: 403 \n", | |
"\n", | |
"Response Code for page 460: 200\n", | |
"Rows of data retrieved: 403 \n", | |
"\n", | |
"Response Code for page 461: 200\n", | |
"Rows of data retrieved: 403 \n", | |
"\n", | |
"Response Code for page 462: 200\n", | |
"Rows of data retrieved: 403 \n", | |
"\n", | |
"Response Code for page 463: 200\n", | |
"Rows of data retrieved: 404 \n", | |
"\n", | |
"Response Code for page 464: 200\n", | |
"Rows of data retrieved: 404 \n", | |
"\n", | |
"Response Code for page 465: 200\n", | |
"Rows of data retrieved: 404 \n", | |
"\n", | |
"Response Code for page 466: 200\n", | |
"Rows of data retrieved: 404 \n", | |
"\n", | |
"Response Code for page 467: 200\n", | |
"Rows of data retrieved: 406 \n", | |
"\n", | |
"Response Code for page 468: 200\n", | |
"Rows of data retrieved: 406 \n", | |
"\n", | |
"Response Code for page 469: 200\n", | |
"Rows of data retrieved: 407 \n", | |
"\n", | |
"Response Code for page 470: 200\n", | |
"Rows of data retrieved: 407 \n", | |
"\n", | |
"Response Code for page 471: 200\n", | |
"Rows of data retrieved: 407 \n", | |
"\n", | |
"Response Code for page 472: 200\n", | |
"Rows of data retrieved: 408 \n", | |
"\n", | |
"Response Code for page 473: 200\n", | |
"Rows of data retrieved: 409 \n", | |
"\n", | |
"Response Code for page 474: 200\n", | |
"Rows of data retrieved: 410 \n", | |
"\n", | |
"Response Code for page 475: 200\n", | |
"Rows of data retrieved: 410 \n", | |
"\n", | |
"Response Code for page 476: 200\n", | |
"Rows of data retrieved: 410 \n", | |
"\n", | |
"Response Code for page 477: 200\n", | |
"Rows of data retrieved: 410 \n", | |
"\n", | |
"Response Code for page 478: 200\n", | |
"Rows of data retrieved: 410 \n", | |
"\n", | |
"Response Code for page 479: 200\n", | |
"Rows of data retrieved: 410 \n", | |
"\n", | |
"Response Code for page 480: 200\n", | |
"Rows of data retrieved: 411 \n", | |
"\n", | |
"Response Code for page 481: 200\n", | |
"Rows of data retrieved: 411 \n", | |
"\n", | |
"Response Code for page 482: 200\n", | |
"Rows of data retrieved: 413 \n", | |
"\n", | |
"Response Code for page 483: 200\n", | |
"Rows of data retrieved: 413 \n", | |
"\n", | |
"Response Code for page 484: 200\n", | |
"Rows of data retrieved: 414 \n", | |
"\n", | |
"Response Code for page 485: 200\n", | |
"Rows of data retrieved: 414 \n", | |
"\n", | |
"Response Code for page 486: 200\n", | |
"Rows of data retrieved: 415 \n", | |
"\n", | |
"Response Code for page 487: 200\n", | |
"Rows of data retrieved: 416 \n", | |
"\n", | |
"Response Code for page 488: 200\n", | |
"Rows of data retrieved: 416 \n", | |
"\n", | |
"Response Code for page 489: 200\n", | |
"Rows of data retrieved: 416 \n", | |
"\n", | |
"Response Code for page 490: 200\n", | |
"Rows of data retrieved: 416 \n", | |
"\n", | |
"Response Code for page 491: 200\n", | |
"Rows of data retrieved: 418 \n", | |
"\n", | |
"Response Code for page 492: 200\n", | |
"Rows of data retrieved: 419 \n", | |
"\n", | |
"Response Code for page 493: 200\n", | |
"Rows of data retrieved: 419 \n", | |
"\n", | |
"Response Code for page 494: 200\n", | |
"Rows of data retrieved: 419 \n", | |
"\n", | |
"Response Code for page 495: 200\n", | |
"Rows of data retrieved: 419 \n", | |
"\n", | |
"Response Code for page 496: 200\n", | |
"Rows of data retrieved: 419 \n", | |
"\n", | |
"Response Code for page 497: 200\n", | |
"Rows of data retrieved: 419 \n", | |
"\n", | |
"Response Code for page 498: 200\n", | |
"Rows of data retrieved: 420 \n", | |
"\n", | |
"Response Code for page 499: 200\n", | |
"Rows of data retrieved: 420 \n", | |
"\n", | |
"Response Code for page 500: 200\n", | |
"Rows of data retrieved: 420 \n", | |
"\n", | |
"Response Code for page 501: 400\n", | |
"Rows of data retrieved: 420 \n", | |
"\n", | |
"There are no more records to retrieve. \n", | |
"\n", | |
"Total pages processed: 501 \n", | |
"\n", | |
"Total rows of data retrieved: 420 \n", | |
"\n", | |
"Converting JSON data to Pandas Dataframe \n", | |
"\n" | |
] | |
}, | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
" adult backdrop_path genre_ids \\\n", | |
"0 False /dbtGinhWWKgQLQ0hjZHMFWxBJcJ.jpg [28, 878, 27, 53] \n", | |
"1 False /wPNI1fd18z5TKBOK9Mv9Rfjb0j0.jpg [53, 18, 28, 80] \n", | |
"2 False /2KGxQFV9Wp1MshPBf8BuqWUgVAz.jpg [16, 28, 12, 35, 10751] \n", | |
"3 False /nb3xI8XI3w4pMVZ38VijbsyBqP4.jpg [18, 36] \n", | |
"4 False /yyFc8Iclt2jxPmLztbP617xXllT.jpg [35, 10751, 14] \n", | |
".. ... ... ... \n", | |
"415 False /d14tpaz2DlQBRXDk94M4pU2gXvj.jpg [99] \n", | |
"416 False /1Z8PEjwJduCWLA40HxlmvuoCGI8.jpg [16, 12, 35] \n", | |
"417 False /f9PSbuMeBS5CuHEOVyymg5lcq8J.jpg [28, 53, 9648, 80, 27] \n", | |
"418 False /qIZ0MS67mJPvEXFgUymBJiU22mc.jpg [16, 35, 10402] \n", | |
"419 False /zgeoMjGEKStumT0tcY4atSPw2Mv.jpg [99] \n", | |
"\n", | |
" id original_language original_title \\\n", | |
"0 1159518 en Black Noise \n", | |
"1 729165 en Out of Exile \n", | |
"2 940551 en Migration \n", | |
"3 872585 en Oppenheimer \n", | |
"4 787699 en Wonka \n", | |
".. ... ... ... \n", | |
"415 1015356 en To Kill a Tiger \n", | |
"416 1054972 en Rock Dog 3: Battle the Beat \n", | |
"417 996727 en The Price We Pay \n", | |
"418 828899 en Metalocalypse: Army of the Doomstar \n", | |
"419 1180248 en Bye Bye Barry \n", | |
"\n", | |
" overview popularity \\\n", | |
"0 Members of an elite security team deployed to ... 772.167 \n", | |
"1 Recently paroled thief Gabriel Russell tries t... 538.114 \n", | |
"2 After a migrating duck family alights on their... 363.551 \n", | |
"3 The story of J. Robert Oppenheimer's role in t... 327.033 \n", | |
"4 Willy Wonka – chock-full of ideas and determin... 308.373 \n", | |
".. ... ... \n", | |
"415 Ranjit, a farmer in India, takes on the fight ... 12.703 \n", | |
"416 After touring the world, Bodi takes some time ... 15.406 \n", | |
"417 After a pawn shop robbery goes askew, two crim... 23.843 \n", | |
"418 After the heroic rescue of Toki Wartooth, DETH... 20.244 \n", | |
"419 When NFL superstar Barry Sanders vanished at t... 16.820 \n", | |
"\n", | |
" poster_path release_date \\\n", | |
"0 /snKpXexv5dtWqEKEmXrJtp8QGQC.jpg 2023-11-03 \n", | |
"1 /jgF5XaXnJmOgMxulhy2k1f9LNNc.jpg 2023-01-20 \n", | |
"2 /ldfCF9RhR40mppkzmftxapaHeTo.jpg 2023-12-06 \n", | |
"3 /8Gxv8gSFCU0XGDykEGv7zR1n2ua.jpg 2023-07-19 \n", | |
"4 /qhb1qOilapbapxWQn9jtRCMwXJF.jpg 2023-12-06 \n", | |
".. ... ... \n", | |
"415 /qxzaYYRAH6gZoyJlnajCvYeL6Ms.jpg 2023-10-20 \n", | |
"416 /39Hr1FKfqqvx0umS60PCCWtBOKd.jpg 2023-02-02 \n", | |
"417 /1zjrFPZNGAJnJoqR7PxvsxRtsTt.jpg 2023-01-13 \n", | |
"418 /fGc9HKeGKebC1RD7WPt0NYDONTo.jpg 2023-08-22 \n", | |
"419 /bAS05MBhwnkNZi2ksMK6oZhWU6p.jpg 2023-11-20 \n", | |
"\n", | |
" title video vote_average vote_count \n", | |
"0 Black Noise False 5.313 16 \n", | |
"1 Out of Exile False 6.281 16 \n", | |
"2 Migration False 7.466 1547 \n", | |
"3 Oppenheimer False 8.094 8550 \n", | |
"4 Wonka False 7.200 3182 \n", | |
".. ... ... ... ... \n", | |
"415 To Kill a Tiger False 7.407 27 \n", | |
"416 Rock Dog 3: Battle the Beat False 6.148 27 \n", | |
"417 The Price We Pay False 5.900 154 \n", | |
"418 Metalocalypse: Army of the Doomstar False 6.815 46 \n", | |
"419 Bye Bye Barry False 8.000 15 \n", | |
"\n", | |
"[420 rows x 14 columns]" | |
], | |
"text/html": [ | |
"\n", | |
" <div id=\"df-4dee26e5-d768-4665-b795-a56cf3bb7614\" class=\"colab-df-container\">\n", | |
" <div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>adult</th>\n", | |
" <th>backdrop_path</th>\n", | |
" <th>genre_ids</th>\n", | |
" <th>id</th>\n", | |
" <th>original_language</th>\n", | |
" <th>original_title</th>\n", | |
" <th>overview</th>\n", | |
" <th>popularity</th>\n", | |
" <th>poster_path</th>\n", | |
" <th>release_date</th>\n", | |
" <th>title</th>\n", | |
" <th>video</th>\n", | |
" <th>vote_average</th>\n", | |
" <th>vote_count</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>False</td>\n", | |
" <td>/dbtGinhWWKgQLQ0hjZHMFWxBJcJ.jpg</td>\n", | |
" <td>[28, 878, 27, 53]</td>\n", | |
" <td>1159518</td>\n", | |
" <td>en</td>\n", | |
" <td>Black Noise</td>\n", | |
" <td>Members of an elite security team deployed to ...</td>\n", | |
" <td>772.167</td>\n", | |
" <td>/snKpXexv5dtWqEKEmXrJtp8QGQC.jpg</td>\n", | |
" <td>2023-11-03</td>\n", | |
" <td>Black Noise</td>\n", | |
" <td>False</td>\n", | |
" <td>5.313</td>\n", | |
" <td>16</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>False</td>\n", | |
" <td>/wPNI1fd18z5TKBOK9Mv9Rfjb0j0.jpg</td>\n", | |
" <td>[53, 18, 28, 80]</td>\n", | |
" <td>729165</td>\n", | |
" <td>en</td>\n", | |
" <td>Out of Exile</td>\n", | |
" <td>Recently paroled thief Gabriel Russell tries t...</td>\n", | |
" <td>538.114</td>\n", | |
" <td>/jgF5XaXnJmOgMxulhy2k1f9LNNc.jpg</td>\n", | |
" <td>2023-01-20</td>\n", | |
" <td>Out of Exile</td>\n", | |
" <td>False</td>\n", | |
" <td>6.281</td>\n", | |
" <td>16</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>False</td>\n", | |
" <td>/2KGxQFV9Wp1MshPBf8BuqWUgVAz.jpg</td>\n", | |
" <td>[16, 28, 12, 35, 10751]</td>\n", | |
" <td>940551</td>\n", | |
" <td>en</td>\n", | |
" <td>Migration</td>\n", | |
" <td>After a migrating duck family alights on their...</td>\n", | |
" <td>363.551</td>\n", | |
" <td>/ldfCF9RhR40mppkzmftxapaHeTo.jpg</td>\n", | |
" <td>2023-12-06</td>\n", | |
" <td>Migration</td>\n", | |
" <td>False</td>\n", | |
" <td>7.466</td>\n", | |
" <td>1547</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>False</td>\n", | |
" <td>/nb3xI8XI3w4pMVZ38VijbsyBqP4.jpg</td>\n", | |
" <td>[18, 36]</td>\n", | |
" <td>872585</td>\n", | |
" <td>en</td>\n", | |
" <td>Oppenheimer</td>\n", | |
" <td>The story of J. Robert Oppenheimer's role in t...</td>\n", | |
" <td>327.033</td>\n", | |
" <td>/8Gxv8gSFCU0XGDykEGv7zR1n2ua.jpg</td>\n", | |
" <td>2023-07-19</td>\n", | |
" <td>Oppenheimer</td>\n", | |
" <td>False</td>\n", | |
" <td>8.094</td>\n", | |
" <td>8550</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>False</td>\n", | |
" <td>/yyFc8Iclt2jxPmLztbP617xXllT.jpg</td>\n", | |
" <td>[35, 10751, 14]</td>\n", | |
" <td>787699</td>\n", | |
" <td>en</td>\n", | |
" <td>Wonka</td>\n", | |
" <td>Willy Wonka – chock-full of ideas and determin...</td>\n", | |
" <td>308.373</td>\n", | |
" <td>/qhb1qOilapbapxWQn9jtRCMwXJF.jpg</td>\n", | |
" <td>2023-12-06</td>\n", | |
" <td>Wonka</td>\n", | |
" <td>False</td>\n", | |
" <td>7.200</td>\n", | |
" <td>3182</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>...</th>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>415</th>\n", | |
" <td>False</td>\n", | |
" <td>/d14tpaz2DlQBRXDk94M4pU2gXvj.jpg</td>\n", | |
" <td>[99]</td>\n", | |
" <td>1015356</td>\n", | |
" <td>en</td>\n", | |
" <td>To Kill a Tiger</td>\n", | |
" <td>Ranjit, a farmer in India, takes on the fight ...</td>\n", | |
" <td>12.703</td>\n", | |
" <td>/qxzaYYRAH6gZoyJlnajCvYeL6Ms.jpg</td>\n", | |
" <td>2023-10-20</td>\n", | |
" <td>To Kill a Tiger</td>\n", | |
" <td>False</td>\n", | |
" <td>7.407</td>\n", | |
" <td>27</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>416</th>\n", | |
" <td>False</td>\n", | |
" <td>/1Z8PEjwJduCWLA40HxlmvuoCGI8.jpg</td>\n", | |
" <td>[16, 12, 35]</td>\n", | |
" <td>1054972</td>\n", | |
" <td>en</td>\n", | |
" <td>Rock Dog 3: Battle the Beat</td>\n", | |
" <td>After touring the world, Bodi takes some time ...</td>\n", | |
" <td>15.406</td>\n", | |
" <td>/39Hr1FKfqqvx0umS60PCCWtBOKd.jpg</td>\n", | |
" <td>2023-02-02</td>\n", | |
" <td>Rock Dog 3: Battle the Beat</td>\n", | |
" <td>False</td>\n", | |
" <td>6.148</td>\n", | |
" <td>27</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>417</th>\n", | |
" <td>False</td>\n", | |
" <td>/f9PSbuMeBS5CuHEOVyymg5lcq8J.jpg</td>\n", | |
" <td>[28, 53, 9648, 80, 27]</td>\n", | |
" <td>996727</td>\n", | |
" <td>en</td>\n", | |
" <td>The Price We Pay</td>\n", | |
" <td>After a pawn shop robbery goes askew, two crim...</td>\n", | |
" <td>23.843</td>\n", | |
" <td>/1zjrFPZNGAJnJoqR7PxvsxRtsTt.jpg</td>\n", | |
" <td>2023-01-13</td>\n", | |
" <td>The Price We Pay</td>\n", | |
" <td>False</td>\n", | |
" <td>5.900</td>\n", | |
" <td>154</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>418</th>\n", | |
" <td>False</td>\n", | |
" <td>/qIZ0MS67mJPvEXFgUymBJiU22mc.jpg</td>\n", | |
" <td>[16, 35, 10402]</td>\n", | |
" <td>828899</td>\n", | |
" <td>en</td>\n", | |
" <td>Metalocalypse: Army of the Doomstar</td>\n", | |
" <td>After the heroic rescue of Toki Wartooth, DETH...</td>\n", | |
" <td>20.244</td>\n", | |
" <td>/fGc9HKeGKebC1RD7WPt0NYDONTo.jpg</td>\n", | |
" <td>2023-08-22</td>\n", | |
" <td>Metalocalypse: Army of the Doomstar</td>\n", | |
" <td>False</td>\n", | |
" <td>6.815</td>\n", | |
" <td>46</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>419</th>\n", | |
" <td>False</td>\n", | |
" <td>/zgeoMjGEKStumT0tcY4atSPw2Mv.jpg</td>\n", | |
" <td>[99]</td>\n", | |
" <td>1180248</td>\n", | |
" <td>en</td>\n", | |
" <td>Bye Bye Barry</td>\n", | |
" <td>When NFL superstar Barry Sanders vanished at t...</td>\n", | |
" <td>16.820</td>\n", | |
" <td>/bAS05MBhwnkNZi2ksMK6oZhWU6p.jpg</td>\n", | |
" <td>2023-11-20</td>\n", | |
" <td>Bye Bye Barry</td>\n", | |
" <td>False</td>\n", | |
" <td>8.000</td>\n", | |
" <td>15</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>420 rows × 14 columns</p>\n", | |
"</div>\n", | |
" <div class=\"colab-df-buttons\">\n", | |
"\n", | |
" <div class=\"colab-df-container\">\n", | |
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-4dee26e5-d768-4665-b795-a56cf3bb7614')\"\n", | |
" title=\"Convert this dataframe to an interactive table.\"\n", | |
" style=\"display:none;\">\n", | |
"\n", | |
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n", | |
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n", | |
" </svg>\n", | |
" </button>\n", | |
"\n", | |
" <style>\n", | |
" .colab-df-container {\n", | |
" display:flex;\n", | |
" gap: 12px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert {\n", | |
" background-color: #E8F0FE;\n", | |
" border: none;\n", | |
" border-radius: 50%;\n", | |
" cursor: pointer;\n", | |
" display: none;\n", | |
" fill: #1967D2;\n", | |
" height: 32px;\n", | |
" padding: 0 0 0 0;\n", | |
" width: 32px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert:hover {\n", | |
" background-color: #E2EBFA;\n", | |
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n", | |
" fill: #174EA6;\n", | |
" }\n", | |
"\n", | |
" .colab-df-buttons div {\n", | |
" margin-bottom: 4px;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert {\n", | |
" background-color: #3B4455;\n", | |
" fill: #D2E3FC;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert:hover {\n", | |
" background-color: #434B5C;\n", | |
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n", | |
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n", | |
" fill: #FFFFFF;\n", | |
" }\n", | |
" </style>\n", | |
"\n", | |
" <script>\n", | |
" const buttonEl =\n", | |
" document.querySelector('#df-4dee26e5-d768-4665-b795-a56cf3bb7614 button.colab-df-convert');\n", | |
" buttonEl.style.display =\n", | |
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n", | |
"\n", | |
" async function convertToInteractive(key) {\n", | |
" const element = document.querySelector('#df-4dee26e5-d768-4665-b795-a56cf3bb7614');\n", | |
" const dataTable =\n", | |
" await google.colab.kernel.invokeFunction('convertToInteractive',\n", | |
" [key], {});\n", | |
" if (!dataTable) return;\n", | |
"\n", | |
" const docLinkHtml = 'Like what you see? Visit the ' +\n", | |
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n", | |
" + ' to learn more about interactive tables.';\n", | |
" element.innerHTML = '';\n", | |
" dataTable['output_type'] = 'display_data';\n", | |
" await google.colab.output.renderOutput(dataTable, element);\n", | |
" const docLink = document.createElement('div');\n", | |
" docLink.innerHTML = docLinkHtml;\n", | |
" element.appendChild(docLink);\n", | |
" }\n", | |
" </script>\n", | |
" </div>\n", | |
"\n", | |
"\n", | |
"<div id=\"df-530f83e6-d89c-44e0-bf27-f9ee33c8da7f\">\n", | |
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-530f83e6-d89c-44e0-bf27-f9ee33c8da7f')\"\n", | |
" title=\"Suggest charts\"\n", | |
" style=\"display:none;\">\n", | |
"\n", | |
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n", | |
" width=\"24px\">\n", | |
" <g>\n", | |
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n", | |
" </g>\n", | |
"</svg>\n", | |
" </button>\n", | |
"\n", | |
"<style>\n", | |
" .colab-df-quickchart {\n", | |
" --bg-color: #E8F0FE;\n", | |
" --fill-color: #1967D2;\n", | |
" --hover-bg-color: #E2EBFA;\n", | |
" --hover-fill-color: #174EA6;\n", | |
" --disabled-fill-color: #AAA;\n", | |
" --disabled-bg-color: #DDD;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-quickchart {\n", | |
" --bg-color: #3B4455;\n", | |
" --fill-color: #D2E3FC;\n", | |
" --hover-bg-color: #434B5C;\n", | |
" --hover-fill-color: #FFFFFF;\n", | |
" --disabled-bg-color: #3B4455;\n", | |
" --disabled-fill-color: #666;\n", | |
" }\n", | |
"\n", | |
" .colab-df-quickchart {\n", | |
" background-color: var(--bg-color);\n", | |
" border: none;\n", | |
" border-radius: 50%;\n", | |
" cursor: pointer;\n", | |
" display: none;\n", | |
" fill: var(--fill-color);\n", | |
" height: 32px;\n", | |
" padding: 0;\n", | |
" width: 32px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-quickchart:hover {\n", | |
" background-color: var(--hover-bg-color);\n", | |
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n", | |
" fill: var(--button-hover-fill-color);\n", | |
" }\n", | |
"\n", | |
" .colab-df-quickchart-complete:disabled,\n", | |
" .colab-df-quickchart-complete:disabled:hover {\n", | |
" background-color: var(--disabled-bg-color);\n", | |
" fill: var(--disabled-fill-color);\n", | |
" box-shadow: none;\n", | |
" }\n", | |
"\n", | |
" .colab-df-spinner {\n", | |
" border: 2px solid var(--fill-color);\n", | |
" border-color: transparent;\n", | |
" border-bottom-color: var(--fill-color);\n", | |
" animation:\n", | |
" spin 1s steps(1) infinite;\n", | |
" }\n", | |
"\n", | |
" @keyframes spin {\n", | |
" 0% {\n", | |
" border-color: transparent;\n", | |
" border-bottom-color: var(--fill-color);\n", | |
" border-left-color: var(--fill-color);\n", | |
" }\n", | |
" 20% {\n", | |
" border-color: transparent;\n", | |
" border-left-color: var(--fill-color);\n", | |
" border-top-color: var(--fill-color);\n", | |
" }\n", | |
" 30% {\n", | |
" border-color: transparent;\n", | |
" border-left-color: var(--fill-color);\n", | |
" border-top-color: var(--fill-color);\n", | |
" border-right-color: var(--fill-color);\n", | |
" }\n", | |
" 40% {\n", | |
" border-color: transparent;\n", | |
" border-right-color: var(--fill-color);\n", | |
" border-top-color: var(--fill-color);\n", | |
" }\n", | |
" 60% {\n", | |
" border-color: transparent;\n", | |
" border-right-color: var(--fill-color);\n", | |
" }\n", | |
" 80% {\n", | |
" border-color: transparent;\n", | |
" border-right-color: var(--fill-color);\n", | |
" border-bottom-color: var(--fill-color);\n", | |
" }\n", | |
" 90% {\n", | |
" border-color: transparent;\n", | |
" border-bottom-color: var(--fill-color);\n", | |
" }\n", | |
" }\n", | |
"</style>\n", | |
"\n", | |
" <script>\n", | |
" async function quickchart(key) {\n", | |
" const quickchartButtonEl =\n", | |
" document.querySelector('#' + key + ' button');\n", | |
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n", | |
" quickchartButtonEl.classList.add('colab-df-spinner');\n", | |
" try {\n", | |
" const charts = await google.colab.kernel.invokeFunction(\n", | |
" 'suggestCharts', [key], {});\n", | |
" } catch (error) {\n", | |
" console.error('Error during call to suggestCharts:', error);\n", | |
" }\n", | |
" quickchartButtonEl.classList.remove('colab-df-spinner');\n", | |
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n", | |
" }\n", | |
" (() => {\n", | |
" let quickchartButtonEl =\n", | |
" document.querySelector('#df-530f83e6-d89c-44e0-bf27-f9ee33c8da7f button');\n", | |
" quickchartButtonEl.style.display =\n", | |
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n", | |
" })();\n", | |
" </script>\n", | |
"</div>\n", | |
"\n", | |
" <div id=\"id_2726cf14-631d-4f4e-95d7-9548436a85fd\">\n", | |
" <style>\n", | |
" .colab-df-generate {\n", | |
" background-color: #E8F0FE;\n", | |
" border: none;\n", | |
" border-radius: 50%;\n", | |
" cursor: pointer;\n", | |
" display: none;\n", | |
" fill: #1967D2;\n", | |
" height: 32px;\n", | |
" padding: 0 0 0 0;\n", | |
" width: 32px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-generate:hover {\n", | |
" background-color: #E2EBFA;\n", | |
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n", | |
" fill: #174EA6;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-generate {\n", | |
" background-color: #3B4455;\n", | |
" fill: #D2E3FC;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-generate:hover {\n", | |
" background-color: #434B5C;\n", | |
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n", | |
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n", | |
" fill: #FFFFFF;\n", | |
" }\n", | |
" </style>\n", | |
" <button class=\"colab-df-generate\" onclick=\"generateWithVariable('popular_movies_2023')\"\n", | |
" title=\"Generate code using this dataframe.\"\n", | |
" style=\"display:none;\">\n", | |
"\n", | |
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n", | |
" width=\"24px\">\n", | |
" <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n", | |
" </svg>\n", | |
" </button>\n", | |
" <script>\n", | |
" (() => {\n", | |
" const buttonEl =\n", | |
" document.querySelector('#id_2726cf14-631d-4f4e-95d7-9548436a85fd button.colab-df-generate');\n", | |
" buttonEl.style.display =\n", | |
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n", | |
"\n", | |
" buttonEl.onclick = () => {\n", | |
" google.colab.notebook.generateWithVariable('popular_movies_2023');\n", | |
" }\n", | |
" })();\n", | |
" </script>\n", | |
" </div>\n", | |
"\n", | |
" </div>\n", | |
" </div>\n" | |
], | |
"application/vnd.google.colaboratory.intrinsic+json": { | |
"type": "dataframe", | |
"variable_name": "popular_movies_2023", | |
"summary": "{\n \"name\": \"popular_movies_2023\",\n \"rows\": 420,\n \"fields\": [\n {\n \"column\": \"adult\",\n \"properties\": {\n \"dtype\": \"boolean\",\n \"num_unique_values\": 1,\n \"samples\": [\n false\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"backdrop_path\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 315,\n \"samples\": [\n \"/xCXMHUMQJess3GACbR2PQI7sjeH.jpg\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"genre_ids\",\n \"properties\": {\n \"dtype\": \"object\",\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"id\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 193902,\n \"min\": 296271,\n \"max\": 1211483,\n \"num_unique_values\": 315,\n \"samples\": [\n 1072371\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"original_language\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 1,\n \"samples\": [\n \"en\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"original_title\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 315,\n \"samples\": [\n \"Jules\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"overview\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 315,\n \"samples\": [\n \"A flying saucer lands in the backyard of an elderly suburbanite with memory problems, who forms a bond with the scared alien inside.\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"popularity\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 66.49378683492255,\n \"min\": 12.703,\n \"max\": 772.167,\n \"num_unique_values\": 314,\n \"samples\": [\n 44.013\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"poster_path\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 315,\n \"samples\": [\n \"/yMOWu8rpZPiBI0j8MInBTtNO0vU.jpg\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"release_date\",\n \"properties\": {\n \"dtype\": \"object\",\n \"num_unique_values\": 172,\n \"samples\": [\n \"2023-11-21\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"title\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 315,\n \"samples\": [\n \"Jules\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"video\",\n \"properties\": {\n \"dtype\": \"boolean\",\n \"num_unique_values\": 1,\n \"samples\": [\n false\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"vote_average\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.8689994407479383,\n \"min\": 0.0,\n \"max\": 8.433,\n \"num_unique_values\": 235,\n \"samples\": [\n 6.676\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"vote_count\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1184,\n \"min\": 0,\n \"max\": 8656,\n \"num_unique_values\": 239,\n \"samples\": [\n 81\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" | |
} | |
}, | |
"metadata": {}, | |
"execution_count": 13 | |
} | |
], | |
"source": [ | |
"# Establishing variables for the API\n", | |
"api_key = '460f7b576a1b5c789d7d574f7fcc4f5f'\n", | |
"language = 'en-US'\n", | |
"url = 'https://api.themoviedb.org'\n", | |
"popular_movie_endpoint = '/3/movie/popular'\n", | |
"params = {'api_key': api_key, 'language': language, 'year': 2023}\n", | |
"headers = {'accept': 'application/json'}\n", | |
"\n", | |
"def get_2023_popular_movie_data():\n", | |
" \"\"\"\n", | |
" This function fetches data from the popular movie endpoint, TMDB API.\n", | |
"\n", | |
" Raises:\n", | |
" SystemExit: Handles exceptions related to the API request call\n", | |
" SystemExit: Handle KeyError exceptions related to processing the API response\n", | |
"\n", | |
" Returns:\n", | |
" JSON: List of filtered JSON data extracted from the API request call\n", | |
" \"\"\"\n", | |
" all_pages_data = []\n", | |
" page = 1\n", | |
" while True:\n", | |
" try:\n", | |
" params['page'] = page\n", | |
" response = requests.get(url + popular_movie_endpoint, headers=headers, params=params)\n", | |
" print(f'Response Code for page {page}: {response.status_code}')\n", | |
" json_file = response.json()\n", | |
" filtered_results = [movie for movie in json_file.get('results', []) if movie.get('release_date', '').startswith('2023') and movie.get('original_language') == 'en']\n", | |
" all_pages_data.extend(filtered_results)\n", | |
" print('Rows of data retrieved: '+str(len(all_pages_data)), '\\n')\n", | |
"\n", | |
"\n", | |
" # If there are no more results in the JSON response, the script will print the statement and terminate\n", | |
" if json_file.get('results',[]) == []:\n", | |
" print('There are no more records to retrieve.', '\\n')\n", | |
" break\n", | |
" page += 1\n", | |
"\n", | |
" # Handle exceptions related to the API request call\n", | |
" except requests.exceptions.RequestException as e:\n", | |
" print(f'Error connecting to the API: {e}')\n", | |
" raise SystemExit\n", | |
"\n", | |
" # Handle exceptions related to processing the API response\n", | |
" except KeyError as e:\n", | |
" print(f'Error processing the API response: {e}')\n", | |
" raise SystemExit\n", | |
"\n", | |
" # Print the total number of pages processed\n", | |
" print(f'Total pages processed: {page}', '\\n')\n", | |
"\n", | |
" print('Total rows of data retrieved: ' + str(len(all_pages_data)), '\\n')\n", | |
" return all_pages_data\n", | |
"\n", | |
"\n", | |
"popular_movies_data_2023 = get_2023_popular_movie_data()\n", | |
"popular_movies_2023 = convertJsonToDataFrame(popular_movies_data_2023)\n", | |
"popular_movies_2023" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "6l3p3zBCEVOr" | |
}, | |
"source": [ | |
"# 7.0 Create your own API script\n", | |
"### Objective: Get movie data from the TMDB API from both 2023 and 2024 that have Spanish as their original language. Ensure that you loop through each page in the API to gather data up to the maximum limit.\n", | |
"* url = ('https://api.themoviedb.org')\n", | |
"* endpoint = ('/3/discover/movie')\n", | |
"* language = ('es-ES')\n", | |
"* api_key = {your api key value}\n", | |
"* params = {'api_key': api_key, 'language': language, 'with_original_language':'es', 'release_date_gte': '2023-1-1'}\n", | |
"* headers = {'accept': 'application/json'}" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "Vi5DgIUEEVOs" | |
}, | |
"outputs": [], | |
"source": [ | |
"# Enter your API code here" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"# Enter your API code here" | |
], | |
"metadata": { | |
"id": "w0qjAXaBKutF" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "73nFMJviEVOs" | |
}, | |
"outputs": [], | |
"source": [ | |
"# Enter your API code here" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "AlyINU-sEVOt" | |
}, | |
"source": [ | |
"# NOAA Weather API Example\n", | |
"This API takes latitude and longitude data points as parameters to get weather data" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "ficcAlTpEVOt", | |
"outputId": "0d870041-56b1-43ff-fa7f-529b7d4b2d06" | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Response Code: 200\n", | |
"URL Link: https://api.weather.gov/points/25.7617,-80.1918 \n", | |
"\n", | |
"{'@context': ['https://geojson.org/geojson-ld/geojson-context.jsonld',\n", | |
" {'@version': '1.1',\n", | |
" '@vocab': 'https://api.weather.gov/ontology#',\n", | |
" 'bearing': {'@type': 's:QuantitativeValue'},\n", | |
" 'city': 's:addressLocality',\n", | |
" 'county': {'@type': '@id'},\n", | |
" 'distance': {'@id': 's:Distance',\n", | |
" '@type': 's:QuantitativeValue'},\n", | |
" 'forecastGridData': {'@type': '@id'},\n", | |
" 'forecastOffice': {'@type': '@id'},\n", | |
" 'geo': 'http://www.opengis.net/ont/geosparql#',\n", | |
" 'geometry': {'@id': 's:GeoCoordinates',\n", | |
" '@type': 'geo:wktLiteral'},\n", | |
" 'publicZone': {'@type': '@id'},\n", | |
" 's': 'https://schema.org/',\n", | |
" 'state': 's:addressRegion',\n", | |
" 'unit': 'http://codes.wmo.int/common/unit/',\n", | |
" 'unitCode': {'@id': 's:unitCode', '@type': '@id'},\n", | |
" 'value': {'@id': 's:value'},\n", | |
" 'wx': 'https://api.weather.gov/ontology#'}],\n", | |
" 'geometry': {'coordinates': [-80.1918, 25.7617], 'type': 'Point'},\n", | |
" 'id': 'https://api.weather.gov/points/25.7617,-80.1918',\n", | |
" 'properties': {'@id': 'https://api.weather.gov/points/25.7617,-80.1918',\n", | |
" '@type': 'wx:Point',\n", | |
" 'county': 'https://api.weather.gov/zones/county/FLC086',\n", | |
" 'cwa': 'MFL',\n", | |
" 'fireWeatherZone': 'https://api.weather.gov/zones/fire/FLZ173',\n", | |
" 'forecast': 'https://api.weather.gov/gridpoints/MFL/110,50/forecast',\n", | |
" 'forecastGridData': 'https://api.weather.gov/gridpoints/MFL/110,50',\n", | |
" 'forecastHourly': 'https://api.weather.gov/gridpoints/MFL/110,50/forecast/hourly',\n", | |
" 'forecastOffice': 'https://api.weather.gov/offices/MFL',\n", | |
" 'forecastZone': 'https://api.weather.gov/zones/forecast/FLZ173',\n", | |
" 'gridId': 'MFL',\n", | |
" 'gridX': 110,\n", | |
" 'gridY': 50,\n", | |
" 'observationStations': 'https://api.weather.gov/gridpoints/MFL/110,50/stations',\n", | |
" 'radarStation': 'KAMX',\n", | |
" 'relativeLocation': {'geometry': {'coordinates': [-80.208615,\n", | |
" 25.775163],\n", | |
" 'type': 'Point'},\n", | |
" 'properties': {'bearing': {'unitCode': 'wmoUnit:degree_(angle)',\n", | |
" 'value': 131},\n", | |
" 'city': 'Miami',\n", | |
" 'distance': {'unitCode': 'wmoUnit:m',\n", | |
" 'value': 2253.0645399099},\n", | |
" 'state': 'FL'},\n", | |
" 'type': 'Feature'},\n", | |
" 'timeZone': 'America/New_York'},\n", | |
" 'type': 'Feature'}\n" | |
] | |
} | |
], | |
"source": [ | |
"# Weather API Example from NOAA - https://www.weather.gov/documentation/services-web-api#/default/zone_stations\n", | |
"\n", | |
"wx_response = requests.get(\"https://api.weather.gov/points/25.761681,-80.191788\", headers={'Accept': 'application/geo+json', 'User-Agent':'Panamax007'})\n", | |
"print('Response Code: ' + str(wx_response.status_code))\n", | |
"print('URL Link: ' + wx_response.url, '\\n')\n", | |
"pprint(wx_response.json())\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [], | |
"metadata": { | |
"id": "prb2G5-9JLDp" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "fba9POZLEVOt" | |
}, | |
"source": [ | |
"# OAuth2 Token Example - World Health Organization (WHO) Example\n", | |
"This is just a code example. It needs a client id and client secret from the WHO to work" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "1DjW18t6EVOu" | |
}, | |
"outputs": [], | |
"source": [ | |
"\n", | |
"token_endpoint = 'https://icdaccessmanagement.who.int/connect/token'\n", | |
"client_id = '...'\n", | |
"client_secret = '...'\n", | |
"scope = 'icdapi_access'\n", | |
"grant_type = 'client_credentials'\n", | |
"\n", | |
"\n", | |
"# get the OAUTH2 token\n", | |
"\n", | |
"# set data to post\n", | |
"payload = {'client_id': client_id,\n", | |
"\t \t 'client_secret': client_secret,\n", | |
" 'scope': scope,\n", | |
" 'grant_type': grant_type}\n", | |
"\n", | |
"# make request\n", | |
"r = requests.post(token_endpoint, data=payload, verify=False).json()\n", | |
"token = r['access_token']\n", | |
"\n", | |
"\n", | |
"# access ICD API\n", | |
"\n", | |
"uri = 'https://id.who.int/icd/entity'\n", | |
"\n", | |
"# HTTP header fields to set\n", | |
"headers = {'Authorization': 'Bearer '+token,\n", | |
" 'Accept': 'application/json',\n", | |
" 'Accept-Language': 'en',\n", | |
"\t 'API-Version': 'v2'}\n", | |
"\n", | |
"# make request\n", | |
"r = requests.get(uri, headers=headers, verify=False)\n", | |
"\n", | |
"# print the result\n", | |
"print (r.text)" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.10.4" | |
}, | |
"colab": { | |
"provenance": [], | |
"collapsed_sections": [ | |
"AlyINU-sEVOt", | |
"fba9POZLEVOt" | |
] | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 0 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment