Home > Net >  Python stops code for no reason when reading JSON file
Python stops code for no reason when reading JSON file

Time:12-26

Hi so let's get straight to the point. Last time i decided to make config file per server to my bot. I also wanted to add command that sends a message to specific channel when bot gets update but i know that not everyone wants to get this message or want to make a special channel for this so i added option to config to change it. That's how config file look for now:

{
    "update": [
        {
            "wlaczone": true,
            "kanal": 757971193205882900
        }
    ]
}

And that's how command looks like:

@bot.command()
@commands.check(user_is_me)
async def update(ctx):
    print('1')
    for server in bot.guilds:
        print('2')
        with open(f'serverSetting/{server.id}.json', 'r', encoding='utf-8') as a:
            print('3')
            d = json.load(a)
            print(d)
            print('4')
            print(d["update"]["wlaczone"])
            for w in d["update"]["wlaczone"]:
                print(w)
                print('5')
                if w == True:
                    print('6.1')
                    c = d['update']['kanal'] 
                    print('7')
                    channel = discord.utils.get(bot.get_all_channels(), id=c)
                    print('8')
                    try:
                        print('9')
                        await channel.send("@everyone Bot dostał właśnie update! Sprawdź |changelog \nsory za ping xD\n~nitolar play")
                        print('10')
                    except Exception:
                        continue
                    else:
                        break
                elif w == False:
                    print('6.2')
                    pass

And command stops working after printing number 4. I don't know why it happens because something like this never happened to me but when i remove ["wlaczone"] it works and print this {'wlaczone': True, 'kanal': 757971193205882900}. It would be awesome if someone could help me with that. Thanks for help!

CodePudding user response:

d["update"] is a list, try d["update"][0]["wlaczone"].

Pay attention to the exception the code raise.

  • Related