Проверка, есть ли определенная переменная в .json файле
пытаюсь сделать что-то похожее на регистрацию в чат-игре на Python для Discord. Я пытаюсь сделать так, чтобы пользователь мог зарегистрировать в ней только один раз. Сама регистрация работает отлично, но проверка абсолютно нет. Можете ли вы как-то помочь, пожалуйста?
@bot.command()
async def getstart(ctx):
await ctx.send('placeholder (welcome message here)')
with open("config.json") as feedsjson:
feeds = json.load(feedsjson)
if not {"name": f"{ctx.message.author.id}"} in feeds:
await ctx.send('placeholder (we can add user in json file)..')
getstartinsocialcredit(ctx.message.author.id, 0)
else:
return await ctx.send('placeholder (user already in json file)')
Что должно получиться по итогу. Пользователь регистрируется один раз, а далее, если он вновь напишет команду (скажем sc.getstart), то ему напишет бот: "Вы уже в Базе! Не могу вас добавить вновь", или по что-то похожее.
Ответы (1 шт):
Проблема вашего решения в том, что вы сравниваете словарь {"name": f"{ctx.message.author.id}"} с {"name": 995336851030290462, "sc": 0}, что никогда равно не будет, т.к во втором случае в словаре есть ключ "sc".
Могу предложить вот такое решение взамен:
l = [{"name": 995336851030290462, "sc": 0}, {"name": 905279830467581057, "sc": 0},
{"name": 129057210578125985, "sc": 0}, {"name": 502801758921868921, "sc": 0}]
searchingId = 129057210578125985
a = True if list(filter(lambda x: x['name'] == searchingId, l)) else False
print(a)