将python文件导入json文件

将python文件导入json文件,python,json,Python,Json,我有一个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 } 这可能吗?您的

我有一个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 
   }

这可能吗?

您的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)

首先,不要将文件命名为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}

您可以将其存储在任何位置或您喜欢的文件。

您可以将所有值保存在
字典中
并将其转换为
json