Python 访问字典模块项

Python 访问字典模块项,python,dictionary,Python,Dictionary,我的工作文件夹是/scripts/ 我创建了一个只包含字典的文件 my_dict = {'sky' : 'blue'} 在这个文件中,我可以很好地打印我的dict['sky'] 在PyCharm中,我在/scripts/中创建了一个名为/scripts/dictionaries/的新文件夹。里面有一个名为dictionary_file.py的文件,里面是我的dict 似乎PyCharm自动生成了一个字典模块。我可以从字典中很好地导入我的dict,但我为什么要尝试执行我的dict['sky']我

我的工作文件夹是/scripts/

我创建了一个只包含字典的文件

my_dict = {'sky' : 'blue'}
在这个文件中,我可以很好地打印我的dict['sky']

在PyCharm中,我在/scripts/中创建了一个名为/scripts/dictionaries/的新文件夹。里面有一个名为dictionary_file.py的文件,里面是我的dict

似乎PyCharm自动生成了一个字典模块。我可以从字典中很好地导入我的dict,但我为什么要尝试执行我的dict['sky']我得到:

TypeError: 'module' object has no attribute '__getitem__'
我肯定这是个愚蠢的问题,但我被卡住了。提前谢谢你的帮助

from dictionaries.dictionary_file import myDict

print myDict['sky']
肯定会抛出:TypeError:“module”对象没有属性“\uuuu getitem\uuuuu”,因为Python认为在这种情况下myDict是一个模块对象

from dictionaries import dictionary_file

print dictionary_file.myDict['sky']
现在Python知道包dictionary的模块dictionary_文件有一个名为myDict的东西,并在运行时发现myDict是一个dict,它实现了一个uuu getitem_uu方法

每当您试图通过字典的键访问字典值时,python就会调用dict类的uuu getitem_uuuu方法

你也可以

from dictionaries.dictionary_file import *

print myDict['sky']
肯定会抛出:TypeError:“module”对象没有属性“\uuuu getitem\uuuuu”,因为Python认为在这种情况下myDict是一个模块对象

from dictionaries import dictionary_file

print dictionary_file.myDict['sky']
现在Python知道包dictionary的模块dictionary_文件有一个名为myDict的东西,并在运行时发现myDict是一个dict,它实现了一个uuu getitem_uu方法

每当您试图通过字典的键访问字典值时,python就会调用dict类的uuu getitem_uuuu方法

你也可以

from dictionaries.dictionary_file import *

print myDict['sky']

请显示模块的文件/目录结构,即包含此代码的文件被调用,包含此代码的目录被调用,以及这些文件/目录是否位于sys.path上。听起来你实际上有一个包,里面有一个模块。这不是目录结构问题。使用导入字典,然后再使用字典。myDict['sky']通过从字典导入myDict,python认为myDict是名为dictionaries的包的一个模块。我已更新了我的OP。很抱歉没有包含更多详细信息和文件夹结构。阅读我的评论,它给出了答案请显示模块的文件/目录结构,即。,调用包含此代码的文件,调用包含此代码的目录,以及这些文件是否位于sys.path上。听起来你实际上有一个包,里面有一个模块。这不是目录结构问题。使用导入字典,然后再使用字典。myDict['sky']通过从字典导入myDict,python认为myDict是名为dictionaries的包的一个模块。我更新了我的OP。很抱歉没有包含更多细节和文件夹结构。阅读我的评论,它给出了答案抱歉。当我编辑OP进行澄清时,我无意中删除了导入部分。你原来的答案相当于modulename.dictname[key]很好。谢谢你的帮助,对不起。当我编辑OP进行澄清时,我无意中删除了导入部分。你原来的答案相当于modulename.dictname[key]很好。谢谢你的帮助。