JsonObject — удобная библиотека для быстрого преобразования json в объекты Python. Крайне удобно, когда необходимо принимать данные по API и парсить их в определенные структуры.
class NameUser(JsonObject):
username = StringProperty()
name = StringProperty()
class User(JsonObject):
name_info = ObjectProperty(NameUser)
active = BooleanProperty(default=False)
date_joined = DateTimeProperty()
tags = ListProperty()
user = User({
'name': 'Daniil',
'username': 'Daniil123',
'active': False,
'date_joined': '2023-03-05T02:46:58Z',
'tags': ['new', 'user', 'python']
})
print(user.name_info.name)
# -> Daniil
Эта библиотека способна значительно ускорить процесс работы с внешними API и обработки JSON данных, особенно если требуется структурировать и обрабатывать их поля.
pip install jsonobject
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Media is too big
VIEW IN TELEGRAM
С ростом популярности Telegram, растет и спрос на разработку ботов. И в этом видео, вы узнаете как создавать ботов на Python с использованием библиотеки aiogram.
Понятное дело, урок не охватывает полностью всю тему и тонкости. Однако, вы получите базу для старта, с которой можно будет двигаться дальше в этом направлении.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤4✍1
Сегодня напишем простой скрипт на Python для анализа лог-файлов. Часто нам нужно вычленить из огромного файла записи об ошибках или другие важные сообщения. Вместо того чтобы просматривать файл вручную, можно автоматизировать этот процесс.
Наш скрипт будет открывать лог-файл, искать строки, содержащие слово "ERROR", и сохранять их в отдельный файл для дальнейшего анализа.
import re
# Указываем имя лог-файла и создаем регулярное выражение для поиска "ERROR"
log_file = 'server.log'
error_pattern = re.compile(r'ERROR')
# Открываем лог-файл для чтения и новый файл для записи ошибок
with open(log_file, 'r', encoding='utf-8') as infile, \
open('errors.log', 'w', encoding='utf-8') as outfile:
for line in infile:
if error_pattern.search(line):
outfile.write(line)
print("Парсинг завершен. Все ошибки сохранены в errors.log")
1. Импортируем модуль
re для работы с регулярными выражениями.2. Задаем имя лог-файла (
server.log) и компилируем шаблон поиска ошибок.3. Читаем лог построчно: если строка содержит "
ERROR", записываем её в новый файл errors.log.4. После выполнения скрипта все найденные ошибки окажутся в файле
errors.log.Такой подход помогает быстро отфильтровать важную информацию, особенно если лог-файл большой.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥2
Из этой статьи, вы узнаете как создать полноценное веб-приложение на FastAPI, которое будет взаимодействовать с Telegram-ботом через WebApp и вебхуки.
В основе проекта — асинхронное взаимодействие с базой данных SQLite с помощью SQLAlchemy, что позволит нам реализовать масштабируемое и эффективное приложение.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4
Этот хендбук поможет не только разобраться в основах, но и перейти к более сложным темам, которые часто используются в реальных проектах. Удобные примеры и упражнения помогут закрепить знания на практике.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2
Media is too big
VIEW IN TELEGRAM
В этом уроке, автор рассказывает и показывает как начать работать с FastAPI, как выстроить проект, настроить работу с базой данных и миграции.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Schematics — это библиотека для простой и мощной валидации и преобразования данных в Python. Она позволяет создавать модели данных с различными правилами и типами, что обеспечивает строгий контроль над структурой данных.
Подходит для разработчиков, которые хотят легко описывать схемы данных и автоматически валидировать и преобразовывать их перед использованием.
from schematics.models import Model
from schematics.types import StringType, IntType, EmailType
from schematics.exceptions import DataError
# Определение модели данных
class User(Model):
name = StringType(required=True, max_length=10)
age = IntType(required=True, min_value=18, max_value=99)
email = EmailType(required=True)
# Проверка корректных данных
user_data = {'name': 'Alice', 'age': 24, 'email': 'alice@example.com'}
try:
user = User(user_data)
user.validate()
print("Данные корректны:", user.to_native())
except DataError as e:
print("Ошибки в данных:", e)
# Попытка валидации некорректных данных
invalid_data = {'name': '', 'age': 'twenty', 'email': 'bob@example'}
try:
invalid_user = User(invalid_data)
invalid_user.validate()
except DataError as e:
print("Ошибки в данных:", e)
pip install schematics
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤1
🏭 Применение ML для оптимизации работы питательных электронасосов в ТЭЦ металлургического комбината
Как машинное обучение помогло оптимизировать работу насосов на ТЭЦ и сэкономить заводу 19,6 млн рублей.
Разбираем алгоритмы, параметры оборудования и почему даже одинаковые агрегаты работают по-разному.
🖥 Перейти к статье
🐍 Ghostly Python | #статьи
Как машинное обучение помогло оптимизировать работу насосов на ТЭЦ и сэкономить заводу 19,6 млн рублей.
Разбираем алгоритмы, параметры оборудования и почему даже одинаковые агрегаты работают по-разному.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2❤1
Разбираем
@overload из модуля typing: как аннотировать функции с разными сигнатурами, улучшить автодополнение в IDE и сделать код понятнее.Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Обычно, когда нужно игнорировать определённые исключения, мы можем встретить такой код:
try:
os.remove("file.txt") # Удаляем файл, если он существует
except FileNotFoundError:
pass # Игнорируем ошибку, если файла нет
Но Python предлагает более лаконичный способ —
contextlib.suppress:from contextlib import suppress
import os
with suppress(FileNotFoundError):
os.remove("file.txt") # Ошибка просто не возникнет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥4❤🔥1
Разбираем, как ускорить Python с C-расширениями. Пишем свою библиотеку на C, подключаем через Python.h, тестируем на алгоритмах и сравниваем с чистым Python.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Сегодня напишем простой Python-скрипт для мониторинга использования оперативной памяти. Если использование RAM превышает заданный порог, скрипт отправит уведомление. Это поможет предотвратить перегрузку системы.
import psutil
import smtplib
from email.mime.text import MIMEText
# Порог использования памяти (в %)
THRESHOLD = 80
# Email для уведомления
EMAIL = "your_email@example.com"
SMTP_SERVER = "smtp.example.com"
SMTP_PORT = 587
SMTP_LOGIN = "your_email@example.com"
SMTP_PASSWORD = "your_password"
# Получаем текущее использование RAM
memory_usage = psutil.virtual_memory().percent
if memory_usage > THRESHOLD:
msg = MIMEText(f"Внимание! Использование памяти достигло {memory_usage}%")
msg["Subject"] = "Memory Alert"
msg["From"] = EMAIL
msg["To"] = EMAIL
with smtplib.SMTP(SMTP_SERVER, SMTP_PORT) as server:
server.starttls()
server.login(SMTP_LOGIN, SMTP_PASSWORD)
server.sendmail(EMAIL, EMAIL, msg.as_string())
print(f"Текущее использование памяти: {memory_usage}%")
1. Используем
psutil для получения текущего уровня использования оперативной памяти.2. Если значение превышает 80%, отправляем уведомление по email.
3. SMTP-сервер используется для отправки писем, можно заменить на другой почтовый сервис.
Такой скрипт полезен для мониторинга состояния серверов и предупреждения нехватки памяти.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9✍1
Стоит ли учить Python в 2025 году? Разбираем плюсы и минусы языка, его востребованность в IT и карьерные перспективы. А ещё немного юмора от Егора Векслера.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Please open Telegram to view this post
VIEW IN TELEGRAM
😁15
Иногда в коде приходится повторно вычислять одни и те же данные, что снижает производительность. Например, рассмотрим функцию, вычисляющую числа Фибоначчи:
def fib(n):
if n <= 1:
return n
return fib(n - 1) + fib(n - 2)
n выполнение занимает очень много времени из-за многократных вызовов одной и той же функции.functools.lru_cache:from functools import lru_cache
@lru_cache(maxsize=None)
def fib(n):
if n <= 1:
return n
return fib(n - 1) + fib(n - 2)
maxsize, чтобы ограничить размер кэша.Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Разбираем, что такое boxplot (он же «ящик с усами») и почему он так полезен. Узнаем, как быстро оценивать медиану, разброс данных и находить выбросы, не вглядываясь в цифры.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Собрали главные новости Python за январь 2025: новый безопасный интерфейс для отладки CPython, итоги опроса Facebook о типах, изменения в PEP 8 и свежий баттл Django vs FastAPI.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
В этой статье вы вкратце узнаете о 22 полезных примерах кода, позволяющих воспользоваться мощью Python.
Некоторые из примеров вы могли уже видеть ранее, а другие будут новыми и интересными для вас. Все эти примеры легко запоминаются.
Проверка дубликатов, фильтрация, получение размера в байтах и другие полезные фишки языка.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤🔥3👎2
Pypika — это мощный конструктор SQL-запросов для Python, который позволяет создавать сложные запросы программно без написания чистого SQL.
Подходит для разработчиков, которые хотят динамически генерировать SQL-запросы, избегая ручного формирования строк SQL и предотвращая SQL-инъекции.
from pypika import Query, Table
# Определяем таблицу
users = Table("users")
# Создаем SQL-запрос
query = Query.from_(users).select(users.id, users.name).where(users.age > 18)
print(query) # SELECT "id","name" FROM "users" WHERE "age">18
• Pypika делает работу с SQL более удобной и безопасной, особенно для сложных запросов в ORM или API.pip install pypika
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🦄1
В этой статье мы познакомимся с Apache Kafka. Мы напишем демо пример Kafka Consumer'а на Python и запустим его в облачном сервисе Confluent Cloud.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5