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