我遇到了与 OP 在 How to import or include data structures (eg a dict) into a Python file from a separate file 中相同的问题。但是由于某种原因我无法让它工作。
我的设置如下:
文件 1.py:
TMP_DATA_FILE = {'a':'val1', 'b':'val2'}
文件2.py:
from file1 import TMP_DATA_FILE
var = 'a'
print(TMP_DATA_FILE[var])
当我这样做并从 cmd 行运行脚本时,它说字符串索引必须是整数。
当我做 type(TMP_DATA_FILE)
时,我得到了“str”类。我试图将其转换为 dict 以便能够使用 dict 操作,但无法使其正常工作。
如果我这样做 print(TMP_DATA_FILE.get(var))
,因为我正在使用 PyCharm 进行开发,它会列出 get()、keys()、items()、fromkeys() 等字典操作,但是当我从命令行运行程序时它说“str”对象没有属性“get”。
当我做 print(TMP_DATA_FILE)
它只列出“val1”。它没有列出 ‘a’、’b’、’val2’。
但是,从 PyCharm 运行相同的脚本时没有任何问题。只是当我从命令行将脚本作为单独的解释器进程运行时,它会给出这些错误。
我不确定是 PyCharm 导致了错误,还是我做错了什么。
最初我在 dict 变量中只有一个键:值并且它起作用了,当我添加新的键:值对时它开始给出这些错误。
我也尝试过使用 ast.literal_eval
& eval
,它们都没有用。不知道我哪里错了。
任何帮助将不胜感激。
谢谢。
原文由 Murali 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以通过两种方式访问文件
file1.py
TMP_DATA_FILE
:或者:
file1.py
位于 python 搜索路径中包含的目录中,或与导入它的文件位于同一目录中。检查 这个关于 python 搜索路径的答案。