The requests module is your portal to the open web.๐คฏ Basically any API that you have access to, you can pull data from it (Though your mileage may vary).
Getting Started โ
Installing requests needs pipenv, so go ahead and install that first if you don't have it. If you do, simply run this command:
pipenv install requests
Let's go ahead and pick an API to use.๐ค
Here is a great resource to public APIs:
public-apis / public-apis
A collective list of free APIs
Public APIs
<i>A collective list of free APIs for use in software and web development</i>
Contributing Guide โข API for this project โข Issues โข Pull Requests โข License
Free APIs โข Dev Resources โข Public APIs Site โข Apihouse โข Collective APIs
[ Become a sponsor and support Public APIs and their maintainers ]
Special thanks to:
The fastest way to integrate APIs into any product
The fastest way to integrate APIs into any product
Index
Let's use the kanye.rest API for this quick example: https://kanye.rest/
Diving In ๐
Let's import the all mighty:
import requests
And get-ting the data is pretty straightforward:
kanye_url = requests.get('https://api.kanye.rest')
Print it in JSON format:
print(kanye_url.json())
# gets a random quote
# {'quote': 'Tweeting is legal and also therapeutic'}
It is important to read the docs of each API because each API is unique ๐ง
Let's say we want to get a Chuck Norris joke from this API:
From the docs it uses a different URL, so let's go ahead and code that:
chuck_url = requests.get('https://api.chucknorris.io/jokes/random')
print(chuck_url.json())
... will output something like this:
{'categories': [], 'created_at': '2016-05-01 10:51:41.584544', 'icon_url': 'https://assets.chucknorris.host/img/avatar/chuck-norris.png', 'id': 'DLqW_fuXQnO1LtveTTAWRg', 'updated_at': '2016-05-01 10:51:41.584544', 'url': 'https://api.chucknorris.io/jokes/DLqW_fuXQnO1LtveTTAWRg', 'value': 'Chuck Norris Lost his virginity before his Dad...'}
...not exactly pretty to look at, so let's pretty-print it:๐
# ๐ Add this import below at the beginning of your file
# import json
print(json.dumps(chuck_url.json(), indent=2))
Now it looks like this:
{
"categories": [
"science"
],
"created_at": "2016-05-01 10:51:41.584544",
"icon_url": "https://assets.chucknorris.host/img/avatar/chuck-norris.png",
"id": "izjeqnjzteeqms8l8xgdhw",
"updated_at": "2016-05-01 10:51:41.584544",
"url": "https://api.chucknorris.io/jokes/izjeqnjzteeqms8l8xgdhw",
"value": "Chuck Norris knows the last digit of pi."
}
Now that's much more readable! ๐ช๐ช๐ช
Sources:
๐ https://3.python-requests.org/
๐ https://github.com/public-apis/public-apis
๐ https://kanye.rest/
๐ค https://api.chucknorris.io/
Top comments (1)
Awesome!!!! Thanks!!!