我有同样的问题,因为在How to import or include data structures (e.g. a dict) into a Python file from a separate file要求由OP。但由于某种原因,我无法使它工作。使用Python字典从文件导入在另一个Python文件
我的设置如下:
file1.py:
TMP_DATA_FILE = {'a':'val1', 'b':'val2'}
file2.py:
from file1 import TMP_DATA_FILE
var = 'a'
print(TMP_DATA_FILE[var])
当我这样做并运行CMD行脚本,它说字符串索引必须是整数。
当我做type(TMP_DATA_FILE)
,我得到一流的 'STR'。我试图将其转换为字典,以便能够使用字典操作,但无法使其工作。
如果我做print(TMP_DATA_FILE.get(var))
,因为我正在开发使用PyCharm,它列出了像get(),keys(),items(),fromkeys()等操作,但是当我从命令行运行程序时, 'str'对象没有'get'属性。
当我做print(TMP_DATA_FILE)
它只是列出了 'VAL1'。它没有列出'a','b','val2'。
但是,从PyCharm运行时的相同脚本没有任何问题。只是当我从命令行运行脚本作为单独的解释器进程时,它会给出这些错误。
我不知道这是否是PyCharm这是造成错误或者如果我做错了什么。
我原本只需一键:在字典变量值和它的工作,当我添加了新的关键字:值对,当它开始给这些错误的。
我也试过使用ast.literal_eval
& eval
,他们都没有工作。不知道我哪里错了。
任何帮助将不胜感激。
谢谢。
忘了提及 - file1.py&file2.py在不同的文件夹中,我在两个文件夹中都有'__init __。py'。我也尝试从一些帖子阅读json选项,那些也没有工作。 – Murali
我编辑了我的问题以更改导入语句。这是我在提问时忘记提及的当前进口样式。对不起,有任何困惑。 – Murali
检查我的答案一次,可能会有所帮助 – Bharadwaj