Задать вопрос
@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"
}
  • Вопрос задан
  • 131 просмотр
Подписаться 1 Простой 13 комментариев
Решения вопроса 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. Если их там несколько, остальные не покажет. Если не найдет, сообщит.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы