Как сделать проверку по 2 условиям из JSON
Как сделать проверку по 2 значениям из json перед отправкой сообщения через telebot
Есть .json файл лежащий рядом с main.py
{"employees": {
"employee": [
{
"name": "Олег Олегов",
"portalname": "test1",
"role": "employee",
"id": 1111111,
"username": "Oleg",
"department": "departament1"
},
{
"name": "Андрей Андреев",
"portalname": "test2",
"role": "employee",
"id": 2222222,
"username": "Andrey",
"department": "departament1"
},
{
"name": "Иван Иванов",
"portalname": "test3",
"role": "employee",
"id": 3333333,
"username": "Ivan",
"department": "departament1"
}]}}
я его подключаю в проект
import telebot
import json
bot = telebot.TeleBot(token)
with open('employees_list.json', encoding='utf-8') as file:
jsonData = json.load(file)
@bot.message_handler(commands=["quest"])
def quest_message(message):
try:
user_username = message.from_user.username
user_id = message.from_user.id
request_quest = '@' + str(user_username) + ' need quest'
print(request_quest)
print(message.text)
answer = 'test'
bot.send_message(user_id, answer)
for i in jsonData['employees']['employee']:
if i['department'] and user_id == 'departament1':
bot.send_message(admin_id, request_quest, reply_markup=gen_markup(str(message.from_user.id)))
except Exception as ex:
print(ex)
bot.send_message(admin_id, "Error: " + str(ex))
Как сделать проверку что бы если юзер находится в department1 и его ID есть в json, то отправлялось сообщение по
bot.send_message(admin_id, request_quest, reply_markup=gen_markup(str(message.from_user.id)))
Ответы (2 шт):
Автор решения: Vladimir Obrizan
→ Ссылка
Если в JSON в поле id записан user_id, то тогда так:
if i['department'] == 'departament1' and i['id'] == user_id:
Автор решения: Alexander
→ Ссылка
Сделал немного по другому:
if any(employee['department'] == "departament1" and employee['id'] == user_id for employee in jsonData['employee']):