Python Forum

Full Version: checking value on json
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi

i've a little question about checking a value in a json file.

I've my json file like that:

{
    "server_model": {
        "server_type1": {
            "service":["service1","service2"],
            "seuil":{}
        },
        "server_type2": {
            "service":["service1","service2"],
            "seuil":{}
        },
    }
}
In my python script I want to check if a value exist in my json file, and it not, error message and exist.

So i use:

server_type = "server_type2"

try:
    data_config = json.load(json_file)
except ValueError:
    logging.critical("Data were not valid json for %s", data_config)
    sys.exit(1)


for key, value in data_config.items():

    if  server_type not in data_config:
        logging.critical("We can not continue: Server type %s not present in config file", server_type)
        sys.exit(50)
But it doesnt work. My result is that script go on this logging.critical.
(If I put if server_type in data_config, it works but it's not logical..)
I tried many things to parse this value but with no success...


I spent many time on this little problem so if you have ideas... ?
Thanks for light

Alex
not tested but try:

server_type = "server_type2"
 
try:
    data_config = json.load(json_file)
except ValueError:
    logging.critical("Data were not valid json for %s", data_config)
else:
    if server_type not in data_config['server_model'].keys():
        logging.critical("We can not continue: Server type %s not present in config file", server_type)
depending on what you would do further it may be better to try to access data you want with data_config['server_model'].get(server_type) and act accordingly from there
Top it works fine.
Thanks for answer, I understand now.

Alex