python读取json配置文件

在项目中,为了方便测试人员测试代码,以及最终交付时保证代码的规范性,通常将代码中的输入变量写成配置文件供调用,同时方便修改变量。

1、json文件的书写规范

先创建一个txt文件,以字典的形式编写你要输入的变量,及其对应的值。

每对键值用逗号隔开!

每对键值用逗号隔开!

每对键值用逗号隔开!

{
    "top_red_Height" : 290,
    "isBlue" : 1,
    "rod_type" : 1,
    "search_left_val" : 1300,
    "search_right_val" : 1600,
    "crop_type" : "xiaomai",
    "proj_path" : "D:/work/image/zhugao/0629",
    "save_folder" : "D:/work/image/zhugao/07282",
    "txt_path" : "D:/work/image/zhugao/07282/txt.txt"
}

写完后,修改txt后缀名为json,其自动转换为json文件。至此json文件就写好了。

2、python程序如何读取json文件

首先需要在python程序中引用json文件。

import json

读取json文件: 

def read_config():
    with open(r"D:\\work\\Python_Vs\\bianli\\bianli\\XMconfig.json") as json_file:
        config = json.load(json_file)
    return config


config = read_config()

因为json文件是字典格式,所以要读取键值,就得按照字典格式读取。

    top_red_Height = config["top_red_Height"]
    isBlue = config["isBlue"]
    rod_type = config["rod_type" ]
    search_left_val = config["search_left_val" ]
    search_right_val = config["search_right_val" ]
    crop_type = config["crop_type" ]
    proj_path = config["proj_path" ]
    save_folder = config["save_folder" ]
    txt_path = config["txt_path" ]

这样就显得很**,一点也不酷。因此呢,我们可以通过这样一行指令来解决这个问题。

    globals().update(config)

这样呢,就让字典里的键跟值变成全局变量,在python程序中直接读取键,就可以获得值。

vals_top,vals_bot = chicun(top_red_Height, isBlue, rod_type)
#这行代码是直接将json中的键直接作为函数的形参进行调用。不需要通过config["top_red_Height"]来读取对应的值。
#事实证明,上述方法可行

到这一part,我们已经实现了json文件的读取,但有些人可能会在读取json文件的同时,需要更新json文件中键所对应值。

def update_config(config):
	with open(r"D:\\work\\Python_Vs\\bianli\\bianli\\config.json", "w") as json_file:
		json.dump(config, json_file, indent=4)
	return None

p = "E:/abc"
config["proj_path"] = p
update_config(config)

通过上述指令就可以更新键值。大家可以自己动手试试。

你可能感兴趣的:(python周边,python)