python读取json配置文件

本文介绍了如何创建和使用JSON文件作为代码输入变量,以及在Python中读取和更新这些配置。通过编写JSON文件并将其转换为字典格式,可以方便地在代码中引用和修改变量。使用`globals().update(config)`可以使字典中的键值变为全局变量,直接在程序中调用。同时,展示了如何通过`json.dump()`更新配置文件中的键值对。
摘要由CSDN通过智能技术生成

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

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)

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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值