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 for use in software and web development.
Public APIs
A collective list of free APIs for use in software and web development.
A public API for this project can be found here!
For information on contributing to this project, please see the contributing guide.
Please note a passing build status indicates all listed APIs are available since the last update. A failing build status indicates that 1 or more services may be unavailable at the moment.
Index
- Animals
- Anime
- Anti-Malware
- Art & Design
- Books
- Business
- Calendar
- Cloud Storage & File Sharing
- Continuous Integration
- Cryptocurrency
- Currency Exchange
- Data Validation
- Development
- Dictionaries
- Documents & Productivity
- Environment
- Events
- Finance
- Food & Drink
- Games & Comics
- Geocoding
- Government
- Health
- Jobs
- Machine Learning
- Music
- News
- Open Data
- Open Source Projects
- Patent
- Personality
- Photography
- Science & Math
- Security
- Shopping
- Social
- Sports & Fitness
- Test Data
- Text Analysis
- Tracking
- Transportation
- URL Shorteners
- Vehicle
- Video
- Weather
Animals
API | Description | Auth | HTTPS | CORS |
---|---|---|---|---|
Cat |
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!!!