将python文件导入json文件

时间:2018-04-02 09:49:30

标签: 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 
   }

这可能吗?

2 个答案:

答案 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}

您可以存储在任何地方或您喜欢的文件。