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



我在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__

最新更新