как определить для значений json, которые «не существуют» для discord.py бот

#python #json #discord.py

#python #json #discord.py

Вопрос:

 def sav():
    with open('values.json', 'w') as outfile:
        json.dump(values, outfile)


@client.event
async def on_ready():
    print(f'{client.user} is now online')


@client.command()
async def cb(ctx):
    if not values[ctx.author.id]["created_account"]:
        values[ctx.author.id] = {"money": 100, "premium": False, "created_account": True}
        sav()
        await ctx.send('you made a bal')
    if values[ctx.author.id]["created_account"]:
        await ctx.send("you already have an account")
    
 

как я могу определить, создали ли они уже учетную запись, если у них даже нет "created_account" = False значения в значениях.json-файл

Ответ №1:

created_account Ключ вообще не имеет смысла, в словаре не будет никакой информации о пользователе, если он не создан. Вы можете сделать то, что предложил stijndcl, или вы можете использовать dict.get и установить значение по умолчанию.

 accounts = {'acc1': {"money": 100, "premium": False, "created_account": True}, 'acc2': {"money": 10, "premium": False, "created_account": True}}
user_to_get = 'acc3'
                       # The key to get, the default value
account = accounts.get(user_to_get, None)

if account is None:
    # account does not exists
else:
    # account does exists
 

Ответ №2:

То, что вы хотите, это

 if "created_account" not in values[ctx.author.id]