我有一个python文件(abc.py
),其中定义了所有常量。现在,我想在JSON文件中分配这些常量。在JSON文件中分配值后,我希望能够将其转换为对象。
例如:
abc.py
val1 = 10
val2 = 20
info.json
import abc as C #which should be a *.py file
{
c1 = C.val1 #from python file
c2 = C.val2
}
这可能吗?
答案 0 :(得分:0)
您的json文件只是一个特殊格式的文本文件,您无法在那里导入,至少对于简单的情况。
你必须编写一个不同的函数/程序来从py文件中的常量创建json。
需要处理字典创建。你可以先玩下面的代码。
def py_constants_to_json(output_file_name='info.json'):
import abc as C
import json
const_dict = {
'c1' : C.val1, #from python file
'c2' : C.val2
}
with open(output_file_name,'w') as outf:
json.dump(const_dict,outf,indent=2)
答案 1 :(得分:0)
首先,永远不要将你的文件命名为abc,因为abc是Python中的内置模块。我们将其命名为my_python_constant.py
import my_python_constant
from operator import attrgetter
import json
variable_names = [s for s in dir(my_python_constant) if not s.startswith('__')]
my_dict = {variable_name: attrgetter(variable_name)(my_python_constant) for variable_name in variable_names}
print(json.dumps(my_dict))
然后你得到了一个json字符串:
{"val1": 10, "val2": 20}
您可以存储在任何地方或您喜欢的文件。