从字符串列表中搜索另一个 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__
,它包含很多其他内容并且被认为使用起来有点麻烦。
我在 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__
,它包含很多其他内容并且被认为使用起来有点麻烦。