В этом репозитории представлены решения для следующих задач:
Необходимо провести верификацию введенных пользователем данных. Проверяются ключи на предмет соответствия написания с определенными в list_keys значениями, а также наличие открывающих и закрывающих скобок.
Для решения этой задачи была написана функция verification, которая принимает текст и список ключей list_keys в качестве входных параметров. Функция проверяет наличие открывающих и закрывающих скобок, а также наличие ключей в тексте. Результаты проверки возвращаются в виде соответствующих сообщений.
Необходимо сгруппировать элементы списка list_version по уникальности пар id и version.
Для решения этой задачи была написана функция count_elements, которая принимает список list_version в качестве входного параметра. Функция считает количество одинаковых пар id и version и возвращает список сгруппированных значений в формате [[id, version, count], ...], где count - количество одинаковых пар id и version.
Пример использования функции:
list_version = [['665587', 2], ['669532', 1], ['669537', 2], ['669532', 1], ['665587', 1]]
result = count_elements(list_version)
print(result)
Необходимо найти различия между двумя JSON-объектами. Если различающиеся параметры входят в diff_list, необходимо вывести различие.
Для решения этой задачи была написана функция compare_json, которая принимает два JSON-объекта и список параметров diff_list. Функция сравнивает значения параметров в двух JSON-объектах и возвращает список словарей с информацией о различиях между JSON-объектами. Каждый словарь содержит ключ, старое значение и новое значение для параметра, который отличается в двух JSON-объектах.
Пример использования функции:
json = {'company_id': 111111, 'resource': 'record', ...}
json_old = {'company_id': 111111, 'resource': 'record', ...}
diff_list = ['services', 'staff', 'datetime']
result = compare_json(json1, json2, diff_list)
print(result)
Предложите систему для очистки данных из MongoDB по истечению заданного времени.
Для решения этой задачи можно использовать TTL (Time to Live) индексы в MongoDB. TTL индексы позволяют автоматически удалять документы из коллекции по истечению заданного времени. Для использования такого индекса необходимо создать индекс на поле, отвечающее за время жизни документа, и указать время жизни в секундах. После истечения указанного времени, MongoDB удалит документ автоматически.
Пример использования TTL индекса:
# Создание TTL индекса на поле 'expiration_time' с временем жизни в 24 часа
collection.create_index("expiration_time", expireAfterSeconds=24*60*60)
# Вставка документа с полем 'expiration_time' равным текущему времени плюс 24 часа
document = { 'data': 'some data', 'expiration_time': datetime.now() + timedelta(days=1) }
Предложите архитектуру обработки входящих веб-хуков с использованием одного эндпоинта
При поступлении входящего веб-хука на эндпоинт "/Datalore", будет вызвана функция process_webhook, которая будет проверять поле 'function' в переданном JSON и выполнять соответствующие действия в зависимости от значения этого поля.