【问题标题】:import a python file into json file将python文件导入json文件
【发布时间】:2018-04-02 09:49:29
【问题描述】:

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

这可能吗?

【问题讨论】:

  • 你能做的就是把你所有的值都放在dictionary中,然后把它转换成json

标签: python json


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-26
      • 2018-11-26
      • 2021-12-27
      • 2017-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多