首页 > 解决方案 > 如何在 Python 中最好地使用配置文件

问题描述

我正在.json为我的项目使用配置文件。我使用的是文件json而不是.py文件,因为我真的希望能够保存和加载我的配置,以处理不同的执行/模型。当我加载它时,我会得到一本字典(比如config_dict)。我可以看到三种使用方法:

1)使用如下代码展开字典中的值:

with open(path_to_config, "r") as f:
    config_dict = json.load(f)

for (k, v) in config_dict.items():
    locals()[k] = v

现在完全展开我的配置需要更多的工作,我的代码中有几个地方我想这样做。所以我想创建一个函数。但是列出所有变量return()是很挑剔的,而且不是很灵活。所以我正在考虑在函数中分配全局变量,即做这样的事情:

def f():
  global x
  x = 5

即,适用于我的案例:

def load_config(path_to_config):

    with open(path_to_config, "r") as f:
        config_dict = json.load(f)

    for (k, v) in config_dict.items():
        global globals()[k]
        globals()[k] = v

但:

一个。此代码不起作用

湾。不知道这样做有没有风险?

2)我可以只使用 config_dict['key'] 作为配置加载后所有代码中的所有键。

3)我可以*kwargs在我使用的函数的参数中使用,并将我的 config_dict 作为参数传递。但我觉得这不是最佳做法。

这里的最佳做法是什么,为什么?

标签: python-3.x

解决方案


推荐阅读