首页 > 解决方案 > 从中读取并提取信息以与代码中的其他变量一起使用?

问题描述

我有一个需要大量变量配置的代码。我们希望打开以json从对话框中选择一个文件,该文件包含所有配置的变量名称,然后一旦您单击'start'该程序将运行并利用文件中的配置,而不是用户.py每次将它们硬编码到文件中.

为清楚起见,我要打开的文件命名为test.json& 在其中,有 5 个不同的字典包含相应的变量。

我需要json加载的是输入块并加载与此相关的文件。

我知道我可以只选择实际文件,但我们正在尝试查看是否可以加载执行此操作的配置文件。

样本test.json

{
    "input":["test.dat"],
    "preprocessing": {
        "a": "svdrecon",
        "b": -110,
        "b":  -90,
        "d": 256,
        "e":   4,
        "e": 512
    }

"input":["test.dat"]

我的open_file方法如下

def open_file(self):
        self.filename, dummy = QFileDialog.getOpenFileName (self, "Open file", "", "I/Q Files (*.bin *.dat *.ltd *.json *.wrp);;Everything (*)")
        self.statusbar.showMessage("Current File Selected: " + self.filename)
        self.strtbtn.setEnabled(True)
        self.cnclbtn.setEnabled(True)

        #load json
        with open(filename) as filename:
            config = json.load(filename)
        #parse data
        #extract input filename
        filename = (config['input'])```

标签: pythonjsonconfiguration-files

解决方案


"input":["test.dat"]

这个 JSON 名称-值对的值是一个包含一个字符串元素的数组,它作为一个字符串的列表加载。如果您只想从 中获取字符串config['input'],您可以使用 放入"input": "test.dat"test.json从列表中提取(第一个)字符串config['input'][0]


推荐阅读