通过python中的dict值从另一个文件获取变量

2024-09-29 05:23:32 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我用一个简单的例子来解释这种情况会更好,我有一个文件,里面有一些字典,比如这个例子:

文件1:

dict1 = {"a": "dictA", "b": "dictB"}
dictA = {1: 100, 2:200 }

文件2:

import file1
mydict = file1.dict1["a"]  #will be string "dictA"
print file1.mydict        #here AttributeError:

当我尝试时:

print file1.mydict

输出只是:

dictA

我也试过:

import file1
print file1.file1.dict1["a"]      #here AttributeError again:

我想从file1打印dictA,但显然python找不到mydict,我也尝试了以下方法:

有办法找到第二本词典吗? 谢谢


Tags: 文件import字典here情况bewillfile1
2条回答

方法1

修改文件1:

dictA = {1: 100, 2:200 }
dict1 = {"a": dictA, "b": dictB}

尝试:

import file1
mydict = file1.dict1["a"]

方法2

不要修改文件1。使用eval()函数按变量名获取变量的值。你知道吗

mydict = eval('file1.' + file1.dict1["a"])

在第一个例子中:

您正在处理在file1中定义的内容,这些内容来自file2。因此,当你做mydict = file1.dict1["a"]时,你在file2中得到一个mydict,而不是在file1。所以你应该可以这样打印出来:

import file1
mydict = file1.dict1["a"]  #will be string "dictA"
print mydict

注意print语句中缺少file1.。这是因为mydict是在file2中创建的,并且没有写入file1。你知道吗

在第二个例子中:

file1中没有定义任何名为file1的内容。如果在file1中确实有这样一个对象,它有一个名为dict1的属性,那么该调用将不会出错。你知道吗

相关问题 更多 >