Встановлення зовнішніх бібліотек (pip) та робота з requests
📖 Теорія
pip — менеджер пакетів Python для встановлення зовнішніх бібліотек.
Команди pip (у терміналі, НЕ в Python):
• pip install пакет — встановити
• pip install пакет==1.2.3 — конкретна версія
• pip uninstall пакет — видалити
• pip list — список встановлених
• pip freeze — список з версіями
requirements.txt — файл залежностей проєкту:
• pip freeze > requirements.txt — зберегти
• pip install -r requirements.txt — встановити всі
requests — популярна бібліотека для HTTP-запитів:
• Завантаження даних з інтернету
• Робота з API сервісів
• Встановлення: pip install requests
💡 Приклад коду
Вивід:
📝 ЗАВДАННЯ (2)
/home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 208
"
data-task-id=" Warning: Undefined array key "id" in /home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 209
"
data-xp="10">
1.
Завдання: Отримання даних з API
10 XP
Встановіть requests та отримайте список користувачів з https://jsonplaceholder.typicode.com/users. Виведіть ім'я, email та місто кожного.
/home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 278
">
💡 Підказка: response.json() поверне список словників. Місто: user['address']['city'].
/home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 287
">
🔓 Розв'язок:
import requests
resp = requests.get('https://jsonplaceholder.typicode.com/users')
if resp.status_code == 200:
for user in resp.json():
print(f"Ім'я: {user['name']}")
print(f"Email: {user['email']}")
print(f"Місто: {user['address']['city']}")
print('-' * 30)
else:
print(f'Помилка: {resp.status_code}')
/home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 296
">
Вивід:
/home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 304
">
/home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 208
"
data-task-id=" Warning: Undefined array key "id" in /home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 209
"
data-xp="20">
2.
Завдання: Статистика завдань з API
20 XP
З https://jsonplaceholder.typicode.com/todos отримайте всі завдання. Виведіть: усього, виконано, не виконано, відсоток. Згрупуйте за користувачами.
/home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 278
">
💡 Підказка: Поле 'completed' — True/False. Групування: set(t['userId'] for t in todos).
/home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 287
">
🔓 Розв'язок:
import requests
todos = requests.get('https://jsonplaceholder.typicode.com/todos').json()
total = len(todos)
done = sum(1 for t in todos if t['completed'])
print(f'Усього: {total}, Виконано: {done}, Ні: {total-done}')
print(f'Відсоток: {done/total*100:.1f}%')
print('\nЗа користувачами:')
for uid in sorted(set(t['userId'] for t in todos)):
ut = [t for t in todos if t['userId'] == uid]
ud = sum(1 for t in ut if t['completed'])
print(f' #{uid}: {ud}/{len(ut)}')
/home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 296
">
Вивід:
/home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 304
">