从字符串列表中搜索另一个 python 文件中的字典

Search through dictionaries in another python file from string list

我在 python 目录中有 2 个文件。 PyDir.File1.py 包含这种格式的字典:

PyDir.File1.py:

dict_1 = {records: "A", ...}
dict_2 = {records: "B", ...}
dict_3 = {records: "C", ...}

PyDir.File2.py 导入 PyDir.File1.py 并有一个字符串列表以及我打算调用的字符串字典。我知道我可以通过导入它们并像这样调用它们来单独调用字典:

PyDir.File2.py:

import PyDir.File1

all_dicts = PyDir.File1
saved_dict = all_dicts.dict_1
print(saved_dict)

但是是否可以通过将字符串列表作为参数传递给 File1 来访问 File1 中的字典?我试过:

import PyDir.File1

dict_list = ["dict_1", "dict_2"]
all_dicts = PyDir.File1
for i in range(len(dict_list)):
    saved_dict = all_dicts[dict_list[i]]
    print(saved_dict)

这给了我一个错误:

TypeError: 'module' object is not subscriptable

并且我尝试将其作为地址的扩展传递:

saved_dict = all_dicts.dict_list[i]

如有任何建议,我们将不胜感激。

每个模块都有一个 __dict__ 属性,可以将模块中的所有项目放入字典中。

所以你可以做到

PyDir.File1.__dict__["dict_1"]

访问 dict_1 字典。

不过,如果可能的话,我建议不要这样做,而是将所有这些指令放入 File1 本身的指令中:

dicts = {
    "dict_1" : {records: "A", ...},
    "dict_2" : {records: "B", ...},
    #...
}

这样就可以了

PyDir.File1.dicts["dict_1"]

并且不依赖 __dict__,它包含很多其他内容并且被认为使用起来有点麻烦。