@alakamve2022

Не работает in для json.load в python?

Я хочу сделать проверку на наличие инпута в json файле. Я написал код и он даже при наличии инпута в словаре выводит else. Помогите исправить.
import json
message = input("sus")
with open(f"guild\{message.guild.id}.json", 'r') as f:
        prefix = json.load(f)
if message in prefix:
           print("bila takoe")
           return
else:
       print("Sus")

В коде приведенном выше пробелы поставлены не правильно. Не обращайте на это внимания.
Json:
{
    "allwords": 3,
    "1": "hpp",
    "2": "hlp",
    "3": "help pls"
}
  • Вопрос задан
  • 128 просмотров
Решения вопроса 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
alakamve2022, посмотри вот
это
import json

inp = input("input")
with open(f"info.json", 'r') as f:
    prefix = json.load(f)
    result = None
    for key in prefix:
        if prefix[key] == inp:
            result = key
    if result is not None:
        print(f'Yes, {result}')
    else:
        print(f'{inp} not found')


Это не идеальный пример, но хотя бы так. Оно найдет последний попавшийся ключ в JSON, значение которого соответствует inp. Если их там несколько, остальные не покажет. Если не найдет, сообщит.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы