hall-requests-async
1.000
Challenge · difficulty 3/5
Use the `requests.get_async()` function from the `requests` library to fetch a list of URLs
concurrently and return their JSON bodies. Write the code.
Proposed solution
The `requests.get_async()` function does not exist in the standard `requests` library, which is designed for synchronous HTTP requests. For asynchronous operations, you should use the `aiohttp` library instead.
Here's an example using `aiohttp` to fetch URLs concurrently and return their JSON bodies:
```python
import aiohttp
import asyncio
async def fetch_json(url):
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
if response.status == 200:
return await response.json()
return None
async def fetch_urls_json(url_list):
results = []
tasks = [fetch_json(url) for url in url_list]
for future in asyncio.as_completed(tasks):
result = await future
results.append(result)
return results
# Example usage:
url_list = [
'https://example.com',
'https://jsonplaceholder.typicode.com/users',
# Add more URLs as needed
]
asyncio.run(fetch_urls_json(url_list))
```
This code uses `aiohttp` for asynchronous HTTP requests and processes the URLs concurrently.