I have an economy system and in this various things are stored in a JSON.
There is a wallet and bank amount. I have uploaded the whole thing to Gitlab, so the JSON will not be readable.
Since I upgraded my bot, which runs with the Red instance, I get a KeyError for 2 users, but also only for a specific query. As an example I have the following command:
    @commands.command()
    async def wallet(self, ctx, user: discord.Member = None):
        """Check the wallet amount"""
        if user is None:
            with open(f'{bundled_data_path(self)}/mainbank.json', 'r') as f:
                data = json.load(f)
                user = ctx.author
                users = await get_bank_data()
                wallet_amt = users[str(user.id)]["wallet"]
                await ctx.send(f "**You have {wallet_amt} coins in your wallet.**")
However, if I now want to query the value of ["bank"] I get a KeyError: ' bank'  for the users that were stored in the JSON before the update, this does not apply to wallet. I am still relatively new to a JSON, but is it possible to delete the data from the JSON or add a key by a command?
Maybe the following definition will also help:
async def open_account(user):
    users = await get_bank_data()
    if str(user.id) in users:
        return False
    else:
        users[str(user.id)] = {}
        users[str(user.id)]["wallet"] = 0 # Goes in one command
        users[str(user.id)]["bank"] = 0 # Does not work
    with open('data/mainbank.json', 'w') as f:
        json.dump(users, f)
    return True
My approaches would be/were:
- Try something with .remove(TheUserID)- This is to delete the whole information for the user
- delsomething out of the JSON
- I also read some different posts but I am not sure whether they will work: 1 & 2
Maybe someone here can tell me if my approaches are the right way to form the whole thing into a command which will for example remove the (user.id) out of the JSON.
 
    