我遇到了与提问者在《如何从单独的文件中导入或包含数据结构(例如dict)到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])
当我执行此操作并从命令行运行脚本时,它会显示“字符串索引必须是整数”。
当我执行
type(TMP_DATA_FILE)
时,返回。我试图将其转换为dict以便使用dict操作,但无法使其工作。如果我执行
print(TMP_DATA_FILE.get(var))
,由于我正在使用PyCharm开发,它会列出dict操作(例如get()、keys()、items()、fromkeys()等),但是当我从命令行运行程序时,它会显示“'str' object has no attribute 'get'”。当我执行
print(TMP_DATA_FILE)
时,它只列出'val1'。它不列出'a'、'b'、'val2'。然而,当我从PyCharm运行相同的脚本时,没有任何问题。只有当我从命令行作为单独的解释器进程运行脚本时,它才会出现这些错误。
我不确定是PyCharm导致错误还是我做错了什么。
最初,dict变量中只有一个键值对,它可以正常工作,但当我添加新的键值对时,就开始出现这些错误了。
我还尝试使用
ast.literal_eval
和eval
,但都没有起作用。不确定我哪里做错了。非常感谢您的帮助。
__init__.py
。我也尝试过从一些帖子中读取json选项,但那些方法也没有起作用。 - Murali